private void PerformComprehensiveSearch(InputSectionDataAlg inSectionData) { ValidateConditions.Validate(inSectionData, false); realizat_label.Text = "".ToString(CultureInfo.InvariantCulture); lossesOne_label.Text = "".ToString(CultureInfo.InvariantCulture); resultFullSearch_label.Text = "".ToString(CultureInfo.InvariantCulture); var flatCount = inSectionData.ListLenOneFlat.Count + inSectionData.ListLenTwoFlat.Count; realizat_label.Text += string.Format(MessagesText.RealizationForRectangles, flatCount).ToString(CultureInfo.InvariantCulture); // lossesOne_label.Text += string.Format(MessagesText.SummarizeAdditionLengthForH, inData.SumDelta.ToString(CultureInfo.InvariantCulture)); var dataAlg = new DataPerformAlgorithm(); var resultDataAfterGrouping = GroupingOnTheFloors.GroupingFlat(inSectionData); dataAlg.ListLenOneFlat = PreparationSquares.FlatsWithTheAdditiveLength(resultDataAfterGrouping.ListResultOneFlat); dataAlg.ListLenTwoFlat = PreparationSquares.FlatsWithTheAdditiveLength(resultDataAfterGrouping.ListResultTwoFlat); dataAlg.FineAfterGrouping = resultDataAfterGrouping.Fine; var myStopWatch = new Stopwatch(); myStopWatch.Start(); var fullSearch = MethodeFullSearch.FullSearch(dataAlg, inSectionData.OptCountFlatOnFloor); fullSearch.Fine = Math.Round(fullSearch.Fine * inSectionData.CountFloor, 1); fullSearch.Fine = Math.Round(fullSearch.Fine + dataAlg.FineAfterGrouping, 1); fullSearch.ListExcessOneFlat = resultDataAfterGrouping.ListExcessOneFlat; fullSearch.ListExcessTwoFlat = resultDataAfterGrouping.ListExcessTwoFlat; PrintResult.FullSearchPrintResult(fullSearch, inSectionData.CountFloor, resultFullSearch_label); myStopWatch.Stop(); resultFullSearch_label.Text += MessagesText.NextLine; var timeFullSearch = string.Format(MessagesText.WorkTimeComprehensiveSearch, myStopWatch.ElapsedMilliseconds / 1000.0).ToString(CultureInfo.InvariantCulture); resultFullSearch_label.Text += timeFullSearch.ToString(CultureInfo.InvariantCulture); }
public void TestFullSearch8() { const int optCountFlat = 4; const double optFine = 3.6; var list1 = new List <double> { 3.9, 6.6, 6.6, 7.2 }; var list2 = new List <double> { 7.5, 7.5, 7.8, 8.1 }; var optItem1 = new List <double> { 6.0, 6.6, 6.6, 7.2 }; var optItem2 = new List <double> { 8.1, 8.1, 8.7, 7.5 }; var result = MethodeFullSearch.FullSearch(new DataPerformAlgorithm(list1, list2), optCountFlat); Assert.AreEqual(result.ListResultOneFlat.Except(optItem1).ToList().Count, 0); Assert.AreEqual(result.ListResultTwoFlat.Except(optItem2).ToList().Count, 0); Assert.AreEqual(result.Fine, optFine); }