@Test public void testSolverInit() { CobwebGraph cw = new CobwebGraph(3); CobwebSolver solver = new CobwebSolver(cw.map); assertTrue(solver.hasUnreachableNodes()); solver.setEdge(1, 2, Edge.EdgeOperation.ADDITION, 1); solver.setEdge(1, 3, Edge.EdgeOperation.ADDITION, 1); assertFalse(solver.hasUnreachableNodes()); assertEquals(null, solver.getNodeValue(1)); solver.setNode(1, 5); assertTrue(solver.getNodeValue(1).equals(5)); }
@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()); }
@Test public void testCircularCobweb() { CobwebSolver circularSolver = new CobwebSolver(createCircularWeb(5).map); assertFalse(circularSolver.hasUnreachableNodes()); }