public void Update_TwoBattlesWithFewerLossesFirst_HigherLossesAreStillListedFirst() { var vm = new SimulationResultsViewModel(); _battleList[1].SurvivingAttackers.Returns(GetListWith2Infantry()); vm.Update(_battleList); Assert.AreEqual(new Dictionary<int, double>() { { 6, 50.0 }, { 0, 50.0 } }, vm.AttackerLosses); }
public void Update_TwoBattlesWithDifferentOutComes_AttackerLossesHasTwoEntries() { var vm = new SimulationResultsViewModel(); _battleList[0].SurvivingAttackers.Returns(GetListWith2Infantry()); vm.Update(_battleList); Assert.AreEqual(new Dictionary<int, double>() { { 6, 50.0 }, { 0, 50.0 } }, vm.AttackerLosses); }
public void Update_TwoBattlesWithNoAttackerLosses_AttackerLossesHasOneEntry() { var vm = new SimulationResultsViewModel(); _battleList[0].SurvivingAttackers.Returns(GetListWith2Infantry()); _battleList[1].SurvivingAttackers.Returns(GetListWith2Infantry()); vm.Update(_battleList); Assert.AreEqual(new Dictionary<int, double>() { {0,100.0} }, vm.AttackerLosses); }
public MainWindowViewModel() { _unitTypesInBattle = GetAvailableUnitTypes(); _currentDefenders = new Dictionary<CombatUnitType, int>(); _currentAttackers = new Dictionary<CombatUnitType, int>(); _simulationWorker = new BackgroundWorker(); _simulationWorker.DoWork += HandleSimulationWorkerDoWork; _simulationWorker.ProgressChanged += HandleSimulationWorkerProgressChanged; _simulationWorker.WorkerReportsProgress = true; IsProgressBarVisible = false; SimulationRuns = 10000; _hitGenerator = new HitGenerator(); _simulationResultsViewModel = new SimulationResultsViewModel(); _attackerCasualtyOrderViewModel = new CasualtyOrderViewModel(GetInitialAttackerCasualtyOrder()); _defenderCasualtyOrderViewModel = new CasualtyOrderViewModel(GetInitialDefenderCasualtyOrder()); }