public void ExecuteTestCase4() { // arrange int[][] listOfSet = new int[][] { new int[] { 0, 1 }, new int[] { 2, 3 }, new int[] { 4 }, new int[] { 1, 3 } }; BruteForceRepresentatives bruteForce = new BruteForceRepresentatives(); List <int> expectedResult = new List <int>() { 1, 2, 4 }; string expectedResult2 = "1,3,4"; // act List <int> result = bruteForce.ExecuteByBinary(listOfSet); // assert Assert.AreEqual(expectedResult.Count, result.Count, "Wrong number rows in result"); for (int i = 0; i < expectedResult.Count; i++) { Assert.AreEqual(expectedResult[i], result[i], $"Wrong string in position {i} - {result[i]}. Expected - {expectedResult[i]}"); } Assert.IsTrue(bruteForce.OptimalSets.Contains(expectedResult2)); }
//-------------------------------------------------------------------------------------- protected override bool MakeAction() { if (_fCurrentPosition == _fSize - 1) { // arrange int[][] listOfSet = _fCurrentSet.Select(t => BruteForceRepresentatives.GetAsElementNumbers(t, _fCardinality).ToArray()).ToArray(); BruteForceRepresentatives bruteForce = new BruteForceRepresentatives(); RepresentativesBranchAndBound branchAndBound = new RepresentativesBranchAndBound(_fCardinality, listOfSet); // act List <int> result = bruteForce.ExecuteByBinary(listOfSet); branchAndBound.Execute(); bruteForce.OptimalSets = bruteForce.OptimalSets.OrderBy(s => s).ToList(); branchAndBound.OptimalSets = branchAndBound.OptimalSets.OrderBy(s => s).ToList(); // assert Assert.AreEqual(branchAndBound.OptimalSets.Count, bruteForce.OptimalSets.Count, "Wrong number rows in result"); for (int i = 0; i < branchAndBound.OptimalSets.Count; i++) { Assert.AreEqual(branchAndBound.OptimalSets[i], bruteForce.OptimalSets[i], $"Wrong string in position {i} - {branchAndBound.OptimalSets[i]}. Expected - {bruteForce.OptimalSets[i]}"); } } return(false); }