InconsistencyBaselineSearchProblem implements SearchProblem<Map<Study, Treatment>> { public Map<Study, Treatment> getInitialState() { Map<Study, Treatment> state = new HashMap<Study, Treatment>(); for (Study s : d_studies) { Set<Treatment> treatments = s.getTreatments(); if (treatments.size() == 2) { state.put(s, CompareUtil.findLeast(treatments, TreatmentComparator.INSTANCE)); } } return state; } InconsistencyBaselineSearchProblem(Collection<Study> studies, UndirectedGraph<Treatment, FoldedEdge<Treatment, Study>> cGraph);  InconsistencyBaselineSearchProblem(Collection<Study> studies, UndirectedGraph<Treatment, FoldedEdge<Treatment, Study>> cGraph, Map<Partition, Set<List<Treatment>>> cycleClasses); Map<Study, Treatment> getInitialState(); List<Map<Study, Treatment>> getSuccessors(final Map<Study, Treatment> state); boolean isGoal(Map<Study, Treatment> state);  }
@Test public void testInitialState() { InconsistencyBaselineSearchProblem problem = new InconsistencyBaselineSearchProblem(d_network.getStudies(), NetworkModel.createComparisonGraph(d_network)); Map<Study, Treatment> expected = new HashMap<Study, Treatment>(); expected.put(d_s2, d_ta); expected.put(d_s3, d_ta); expected.put(d_s4, d_ta); assertEquals(expected, problem.getInitialState()); }