public void GetSuggestions_Tests(float targetCurrent, int suggestionsExpected) { var connectorsList = new List <Connector> { new Connector() { MaxCurrent = 44, ChargeStationId = 1 }, new Connector() { MaxCurrent = 10, ChargeStationId = 1 }, new Connector() { MaxCurrent = 8.9f, ChargeStationId = 2 }, new Connector() { MaxCurrent = 1.1f, ChargeStationId = 2 }, new Connector() { MaxCurrent = 20, ChargeStationId = 3 }, new Connector() { MaxCurrent = 30, ChargeStationId = 3 }, new Connector() { MaxCurrent = 10, ChargeStationId = 4 }, }; var suggester = new Suggester(); var suggestions = suggester.GetSuggestions(connectorsList, targetCurrent); Assert.Equal(suggestionsExpected, suggestions.Count); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); float target = 9; var connectorsList = new List <Connector>(); connectorsList.Add(new Connector() { MaxCurrent = 6, ChargeStationId = 1, CK_Id = 1 }); connectorsList.Add(new Connector() { MaxCurrent = 5, ChargeStationId = 2, CK_Id = 2 }); connectorsList.Add(new Connector() { MaxCurrent = 4, ChargeStationId = 3, CK_Id = 3 }); connectorsList.Add(new Connector() { MaxCurrent = 3, ChargeStationId = 4, CK_Id = 4 }); connectorsList.Add(new Connector() { MaxCurrent = 3, ChargeStationId = 7, CK_Id = 7 }); // connectorsList.Add(new Connector() { MaxCurrent = 3, ChargeStationId = 5, CK_Id = 5 }); // connectorsList.Add(new Connector() { MaxCurrent = 1, ChargeStationId = 6, CK_Id = 6 }); //connectorsList.Add(new Connector() { MaxCurrent = 33, ChargeStationId = 1, CK_Id = 1 }); //connectorsList.Add(new Connector() { MaxCurrent = 20, ChargeStationId = 2, CK_Id = 2 }); //connectorsList.Add(new Connector() { MaxCurrent = 19, ChargeStationId = 3, CK_Id = 3 }); //connectorsList.Add(new Connector() { MaxCurrent = 17, ChargeStationId = 4, CK_Id = 4 }); //connectorsList.Add(new Connector() { MaxCurrent = 16, ChargeStationId = 4, CK_Id = 4 }); //connectorsList.Add(new Connector() { MaxCurrent = 10, ChargeStationId = 5, CK_Id = 5 }); //connectorsList.Add(new Connector() { MaxCurrent = 9, ChargeStationId = 6, CK_Id = 6 }); //connectorsList.Add(new Connector() { MaxCurrent = 3, ChargeStationId = 7, CK_Id = 7 }); //connectorsList.Add(new Connector() { MaxCurrent = 2, ChargeStationId = 8, CK_Id = 8 }); //connectorsList.Add(new Connector() { MaxCurrent = 17, ChargeStationId = 9, CK_Id = 9 }); /////// var watch2 = System.Diagnostics.Stopwatch.StartNew(); var suggestions2 = ConnectorRemovalSuggestionService.SuggestConnectors(connectorsList, target); watch2.Stop(); var elapsedMs2 = watch2.ElapsedMilliseconds; Console.WriteLine("Suggestions count : " + suggestions2.Count); Console.WriteLine("Time : " + elapsedMs2); foreach (var item in suggestions2) { Console.WriteLine("Suggestion Start : ***********"); foreach (var element in item) { Console.WriteLine($"ID : {element.ConnectorId} chargeStationID : {element.StationId} MaxCurrent : {element.ConnectorCurrent}"); } Console.WriteLine("Suggestion End **************"); } Console.WriteLine("\nThe Other Solution //////////////////////////**************"); Console.WriteLine("**************\n"); var suggester = new Suggester(); var watch = System.Diagnostics.Stopwatch.StartNew(); var suggestions = suggester.GetSuggestions(connectorsList, target); watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; Console.WriteLine("My Suggestions count : " + suggestions.Count); Console.WriteLine("My Time : " + elapsedMs); foreach (var item in suggestions) { Console.WriteLine("Suggestion Start : ***********"); if (item is SingleElementSuggestion) { var sinSuggestion = (SingleElementSuggestion)item; Console.WriteLine($"ID : {sinSuggestion.Element.CK_Id} chargeStationID : {sinSuggestion.Element.ChargeStationId} MaxCurrent : {sinSuggestion.Element.MaxCurrent}"); } else { var muSuggestion = (MultipleElementSuggestion)item; foreach (var element in muSuggestion.Elements) { Console.WriteLine($"ID : {element.CK_Id} chargeStationID : {element.ChargeStationId} MaxCurrent : {element.MaxCurrent}"); } } Console.WriteLine("Suggestion End **************"); } Console.ReadKey(); }