public void calculate_row_status(int[] ranges, CellState[] states, RowStatus resultStatus) { var row = MakeList(states); var solver = new Solver.ContradictionSolver(); var descriptor = MakeDescriptor(ranges); Assert.Equal(resultStatus, Utils.GetRowStatus(row, descriptor)); }
public void find_common_cells(string[] state_values, string result) { var cellStates = state_values.Select(x => x.Select(CellStateForChar)); var solver = new Solver.ContradictionSolver(); var commonRow = solver.FindCommonCells(cellStates); Assert.Equal(result, RowToString(commonRow)); }
public void remove_conflicting_states(string state, string[][] rowVariants, string[][] expected, int expectedRemoved) { var cellStates = rowVariants.Select(x => x.Select(y => y.Select(CellStateForChar).ToList()).ToList()).ToList(); var solver = new Solver.ContradictionSolver(); var commonState = state.Select(CellStateForChar); var expectedStates = expected.Select(x => x.Select(y => y.Select(CellStateForChar))); var result = solver.RemoveConflictingStates(commonState, 2, cellStates); Assert.Equal(expectedRemoved, result); Assert.Equal(expectedStates, cellStates); }
public void generate_permutations(int rowSize, int[] ranges, string[] expected) { var solver = new Solver.ContradictionSolver(); var descriptor = MakeDescriptor(ranges); var result = Utils.MakePossibleStates(rowSize, descriptor); var stringResult = result.Select(RowToString).ToArray(); Array.Sort(stringResult); Array.Sort(expected); Debug.WriteLine(String.Join(",", stringResult)); Assert.Equal(expected, stringResult); }