@Test public void testEasyTriangle() { CobwebGraph easy = new CobwebGraph(3); CobwebSolver solver; easy.setEdge(1, 2, Edge.EdgeOperation.MULTIPLICATION, 2); easy.setEdge(1, 3, Edge.EdgeOperation.ADDITION, 1); easy.setEdge(3, 2, Edge.EdgeOperation.ADDITION, 2); easy.setNode(1, 2); solver = new CobwebSolver(easy.map); assertEquals(CobwebSolver.SolverState.NO_SOLUTION, solver.numberOfSolutions()); easy.setNode(1, 3); solver = new CobwebSolver(easy.map); assertEquals(CobwebSolver.SolverState.SINGLE_SOLUTION, solver.numberOfSolutions()); }
@Test public void testEasyQuad() { CobwebGraph quad = new CobwebGraph(4); CobwebSolver solver; quad.setEdge(1, 2, Edge.EdgeOperation.ADDITION, 6); quad.setEdge(2, 3, Edge.EdgeOperation.MULTIPLICATION, 2); quad.setEdge(1, 4, Edge.EdgeOperation.MULTIPLICATION, 3); quad.setEdge(4, 3, Edge.EdgeOperation.ADDITION, 1); solver = new CobwebSolver(quad.map); assertEquals(CobwebSolver.SolverState.SINGLE_SOLUTION, solver.numberOfSolutions()); quad.setNode(4, 33); solver = new CobwebSolver(quad.map); assertFalse(solver.hasUnreachableNodes()); assertEquals(CobwebSolver.SolverState.SINGLE_SOLUTION, solver.numberOfSolutions()); quad.setNode(4, 15); solver = new CobwebSolver(quad.map); assertEquals(CobwebSolver.SolverState.NO_SOLUTION, solver.numberOfSolutions()); }