1 package org.sat4j; 2 3 import static org.junit.Assert.assertEquals; 4 5 import org.junit.Before; 6 import org.junit.Test; 7 import org.sat4j.minisat.SolverFactory; 8 import org.sat4j.specs.ISolver; 9 import org.sat4j.tools.DimacsOutputSolver; 10 import org.sat4j.tools.GateTranslator; 11 import org.sat4j.tools.ManyCore; 12 import org.sat4j.tools.ModelIterator; 13 14 public class TestSolverEngine { 15 16 private ISolver solver; 17 18 @Before 19 public void startUp() { 20 solver = SolverFactory.newDefault(); 21 } 22 23 @Test 24 public void testThatASolverReturnsItself() { 25 assertEquals(solver, solver.getSolvingEngine()); 26 } 27 28 @Test 29 public void testThatItWorksWithOneDecorator() { 30 GateTranslator gator = new GateTranslator(solver); 31 assertEquals(solver, gator.getSolvingEngine()); 32 } 33 34 @Test 35 public void testThatItWorksWithTwoDecorators() { 36 ModelIterator it = new ModelIterator(new GateTranslator(solver)); 37 assertEquals(solver, it.getSolvingEngine()); 38 } 39 40 @Test(expected = UnsupportedOperationException.class) 41 public void testThatItDoesNotWorkForManyCore() { 42 ManyCore<ISolver> mc = new ManyCore<ISolver>(solver); 43 mc.getSolvingEngine(); 44 } 45 46 @Test(expected = UnsupportedOperationException.class) 47 public void testThatItDoesNotWorkForOutputSolvers() { 48 DimacsOutputSolver output = new DimacsOutputSolver(); 49 output.getSolvingEngine(); 50 } 51 }