public void ChartDataHandler_Data46() { Variables.sportsmens.Clear(); // create sportsmens for test Variables.sportsmens.Add(CreateSportsmen("Country1")); Variables.sportsmens.Add(CreateSportsmen("Country1")); Variables.sportsmens.Add(CreateSportsmen("Country1")); Variables.sportsmens.Add(CreateSportsmen("Country2")); Variables.sportsmens.Add(CreateSportsmen("Country2")); Variables.sportsmens.Add(CreateSportsmen("Country3")); Variables.sportsmens.Add(CreateSportsmen("Country3")); Variables.sportsmens.Add(CreateSportsmen("Country4")); // set expected dictionary Dictionary <string, int> expectedDictionary = new Dictionary <string, int>(); expectedDictionary.Add("Country1", 3); expectedDictionary.Add("Country2", 2); expectedDictionary.Add("Country3", 2); expectedDictionary.Add("Country4", 1); // test CollectionAssert.AreEqual(expectedDictionary, dataHandler.Data_46()); }
// create panels public void CreateElementPanels(string set) { switch (set) { case "general": // создание панелей на основе прочитанной бд ElementsPanel.Width = Variables.sportsmens.Count > 4 ? 306 : 286; panelsCreator.CreatePanels_General(ElementsPanel, tab1); break; case "4.1": #region task 4.1 // Для заданной страны вывести список команды с указанием // фамилии спортсмена и вида спорта ElementsPanel_Clear(); panelsCreator.CreatePanels_4_1(ElementsPanel, tab2.Country.Text); #endregion break; case "4.2": #region task 4.2 // Для заданного вида спорта вывести список спортсменов-участников // с указанием страны в порядке возрастания результата ElementsPanel_Clear(); List <Sportsmen> rowSportsmens = new List <Sportsmen>(); // фильтр по спорту foreach (Sportsmen item in Variables.sportsmens) { if (item.Sport.ToLower() == tab2.Sport.Text.ToLower()) { rowSportsmens.Add(item); } } // сортировка var sortedSportsmens = from item in rowSportsmens orderby(item.Gold + item.Silver + item.Bronze) ascending select item; panelsCreator.CreatePanels_4_2(ElementsPanel, sortedSportsmens.ToList()); #endregion break; case "4.3": #region task 4.3 // Вывести таблицу стран-участниц с указанием // количества зол., сереб. и бронз. наград (>) ElementsPanel_Clear(); var countries = new Dictionary <string, Dictionary <string, int> >(); // заполнение словаря foreach (Sportsmen item in Variables.sportsmens) { if (countries.ContainsKey(item.Country)) { countries[item.Country]["Gold"] += item.Gold; countries[item.Country]["Silver"] += item.Silver; countries[item.Country]["Bronze"] += item.Bronze; } else { countries.Add(item.Country, new Dictionary <string, int>()); countries[item.Country].Add("Gold", item.Gold); countries[item.Country].Add("Silver", item.Silver); countries[item.Country].Add("Bronze", item.Bronze); } } // сортировка var sortedCountries = from pair in countries orderby(pair.Value["Gold"] + pair.Value["Silver"] + pair.Value["Bronze"]) descending select pair; panelsCreator.CreatePanels_4_3(ElementsPanel, sortedCountries.ToDictionary(pair => pair.Key, pair => pair.Value)); #endregion break; case "4.4": #region task 4.4 ElementsPanel_Clear(); var rowData = dataHandler.Data_44(tab3.Sport44.Text.ToLower()); panelsCreator.CreatePanels_4_4(ElementsPanel, rowData.Item1, rowData.Item2); #endregion break; case "4.5": #region task 4.5 ElementsPanel_Clear(); panelsCreator.CreatePanels_4_5(ElementsPanel, dataHandler.Data_45(tab3.Sport45.Text.ToLower())); #endregion break; case "4.6": #region task 4.6 ElementsPanel_Clear(); panelsCreator.CreatePanels_4_6(ElementsPanel, dataHandler.Data_46()); #endregion break; } }