Ejemplo n.º 1
0
  @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());
  }
Ejemplo n.º 2
0
  @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());
  }