Пример #1
0
        public void HandTimingsVM()
        {
            string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"1557MRBR_RH.mdb");
            string hsFilename = @"--Handzeit-Start.txt";
            string hfFilename = @"--Handzeit-Ziel.txt";

            Database db = new Database();

            db.Connect(dbFilename);
            AppDataModel model = new AppDataModel(db);

            FromFileHandTiming hsTiming = new FromFileHandTiming(hsFilename);
            FromFileHandTiming hfTiming = new FromFileHandTiming(hfFilename);

            hsTiming.Connect();
            hfTiming.Connect();

            List <TimingData> hsList = new List <TimingData>(hsTiming.TimingData());
            List <TimingData> hfList = new List <TimingData>(hfTiming.TimingData());


            HandTimingVM htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EStartTime);

            htVM.AddRunResults(model.GetRace(0).GetRun(0).GetResultList());
            htVM.AddHandTimings(hsList);
        }
Пример #2
0
        public void HandTimingsVM_DeleteHandTiming()
        {
            TestDataGenerator tg   = new TestDataGenerator();
            HandTimingVM      htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EStartTime);

            List <RunResult> rr1 = new List <RunResult>
            {
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 0, 2), new TimeSpan(0, 8, 1, 2))
            };

            List <TimingData> hts1 = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 2, 301)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 5, 2, 300)
                }
            };

            htVM.AddRunResults(rr1);
            htVM.AddHandTimings(hts1);

            Assert.AreEqual(2, htVM.Items.Count);

            htVM.DeleteHandTimings();

            Assert.AreEqual(1, htVM.Items.Count);
            Assert.IsNull(htVM.Items[0].HandTime);
            Assert.IsNotNull(htVM.Items[0].StartTime);
        }
Пример #3
0
        public void HandTimingVMManager_SaveBackToDataModel()
        {
            TestDataGenerator tg = new TestDataGenerator();

            // Participant 1
            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(tg.createRaceParticipant(), new TimeSpan(0, 8, 0, 2), new TimeSpan(0, 8, 1, 2));

            // Participant 2
            var p2 = tg.createRaceParticipant();

            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(p2, new TimeSpan(0, 8, 2, 2), new TimeSpan(0, 8, 3, 2));
            tg.Model.GetRace(0).GetRun(0).SetRunTime(p2, new TimeSpan(0, 0, 1, 0));

            // Participant 3
            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(tg.createRaceParticipant(), new TimeSpan(0, 8, 4, 2), null);


            HandTimingVMManager mgr   = new HandTimingVMManager(tg.Model);
            HandTimingVM        htVMS = mgr.GetHandTimingVM(tg.Model.GetRace(0), tg.Model.GetRace(0).GetRun(0), HandTimingVMEntry.ETimeModus.EStartTime);
            HandTimingVM        htVMF = mgr.GetHandTimingVM(tg.Model.GetRace(0), tg.Model.GetRace(0).GetRun(0), HandTimingVMEntry.ETimeModus.EFinishTime);


            // Case 1: Finish Time did not yet exist
            // a) check on finish time
            // b) Check on run time
            htVMF.Items[2].SetCalulatedHandTime(new TimeSpan(0, 8, 5, 2, 0));
            Assert.IsNull(tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 3).GetFinishTime());
            mgr.SaveToDataModel();
            Assert.AreEqual(new TimeSpan(0, 8, 5, 2, 0), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 3).GetFinishTime());
            Assert.AreEqual(new TimeSpan(0, 0, 1, 0, 0), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 3).GetRunTime());


            // Case 2: Finish Time did exist and runtime was already calculated which need to be correct after setting finish time
            // a) check on finish time
            // b) Check on run time
            htVMF.Items[1].SetCalulatedHandTime(new TimeSpan(0, 8, 3, 2, 200));
            Assert.AreEqual(new TimeSpan(0, 8, 3, 2, 0), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 2).GetFinishTime());
            mgr.SaveToDataModel();
            Assert.AreEqual(new TimeSpan(0, 8, 3, 2, 200), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 2).GetFinishTime());
            Assert.AreEqual(new TimeSpan(0, 0, 1, 0, 200), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 2).GetRunTime());

            // Case 3: Test something with StartTime
            // a) check on finish time
            // b) Check on run time
            htVMS.Items[0].SetCalulatedHandTime(new TimeSpan(0, 8, 0, 1, 0));
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2, 0), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 1).GetStartTime());
            mgr.SaveToDataModel();
            Assert.AreEqual(new TimeSpan(0, 8, 0, 1, 0), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 1).GetStartTime());
            Assert.AreEqual(new TimeSpan(0, 0, 1, 1, 0), tg.Model.GetRace(0).GetRun(0).GetResultList().First(p => p.StartNumber == 1).GetRunTime());
        }
Пример #4
0
        public void HandTimingCalc_Report()
        {
            TestDataGenerator tg   = new TestDataGenerator();
            HandTimingVM      htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EStartTime);

            List <RunResult> rr1 = new List <RunResult>
            {
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 0, 0), new TimeSpan(0, 8, 0, 10)),
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 1, 0), new TimeSpan(0, 8, 1, 20)),
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 2, 0), new TimeSpan(0, 8, 2, 30)),
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 3, 0), new TimeSpan(0, 8, 3, 40)),
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 4, 0), new TimeSpan(0, 8, 4, 50)),
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 5, 45))
            };

            List <TimingData> hts1 = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 0, 100)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 1, 0, 200)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 2, 0, 300)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 3, 0, 100)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 4, 0, 200)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 5, 0, 300)
                }
            };

            htVM.AddRunResults(rr1);
            htVM.AddHandTimings(hts1);

            htVM.AssignStartNumber(htVM.Items[5], 6);

            HandTimingCalc hc = new HandTimingCalc(htVM.Items[5], htVM.Items);

            IPDFReport report = new HandTimingCalcReport(hc, tg.Model.GetRace(0));

            Assert.IsTrue(TestUtilities.GenerateAndCompareAgainstPdf(TestContext, report, @"HandTimingCalc_Report.pdf", 1));
        }
Пример #5
0
        public void HandTimingsVM_Correlation()
        {
            TestDataGenerator tg = new TestDataGenerator();

            HandTimingVM htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EStartTime);

            List <RunResult> rr1 = new List <RunResult>
            {
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 0, 2), new TimeSpan(0, 8, 1, 2)),
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 2, 2), new TimeSpan(0, 8, 3, 2)),
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 4, 2), null)
            };

            List <TimingData> hts1 = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 2, 301)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 2, 1, 299)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 2, 1, 300)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 4, 2, 1)
                }
            };

            htVM.AddRunResults(rr1);
            htVM.AddHandTimings(hts1);

            Assert.AreEqual(new TimeSpan(0, 8, 0, 2), htVM.Items[0].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2, 301), htVM.Items[0].HandTime);
            Assert.AreEqual(new TimeSpan(0, 0, 0, 0, 300), htVM.Items[0].HandTimeDiff);

            Assert.IsNull(htVM.Items[1].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 2, 1, 300), htVM.Items[1].HandTime);
            Assert.IsNull(htVM.Items[1].HandTimeDiff);

            Assert.AreEqual(new TimeSpan(0, 8, 2, 2), htVM.Items[2].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 2, 1, 299), htVM.Items[2].HandTime);
            Assert.AreEqual(new TimeSpan(0, 0, 0, 0, -710), htVM.Items[2].HandTimeDiff);

            Assert.AreEqual(new TimeSpan(0, 8, 4, 2), htVM.Items[3].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 4, 2, 1), htVM.Items[3].HandTime);
            Assert.AreEqual(new TimeSpan(0, 0, 0, 0, 0), htVM.Items[3].HandTimeDiff);
        }
        private void updateHandTimingVM()
        {
            RaceRun rr        = cmbCalcRun.SelectedValue as RaceRun;
            var     timeModus = (string)(cmbCalcDeviceStartOrFinish.SelectedItem as CBItem).Value == "Start"
        ? HandTimingVMEntry.ETimeModus.EStartTime : HandTimingVMEntry.ETimeModus.EFinishTime;

            if (_race == null && rr == null)
            {
                return;
            }

            _currentHandTimingVM = _handTimingVMManager.GetHandTimingVM(_race, rr, timeModus);

            dgHandTiming.ItemsSource = _currentHandTimingVM.Items;
            updateButtonEnableState();
        }
Пример #7
0
        public void HandTimingCalc_Test3()
        {
            TestDataGenerator tg   = new TestDataGenerator();
            HandTimingVM      htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EFinishTime);

            List <RunResult> rr1 = new List <RunResult>
            {
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 0, 0)),
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 1, 0)),
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 2, 0)),
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 3, 0)),
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 4, 0)),
                tg.createRunResult(tg.createRaceParticipant(), null, null)
            };

            List <TimingData> hts1 = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 0, 100)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 1, 0, 200)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 2, 0, 300)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 3, 0, 100)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 4, 0, 200)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 5, 0, 300)
                }
            };

            htVM.AddRunResults(rr1);
            htVM.AddHandTimings(hts1);

            htVM.AssignStartNumber(htVM.Items[5], 6);

            HandTimingCalc hc = new HandTimingCalc(htVM.Items[5], htVM.Items);

            Assert.AreEqual(new TimeSpan(0, 8, 5, 0, 120), hc.CalculatedTime);
        }
Пример #8
0
        public void HandTimingsVM_Dissolve()
        {
            TestDataGenerator tg = new TestDataGenerator();

            HandTimingVM htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EStartTime);

            List <RunResult> rr1 = new List <RunResult>
            {
                tg.createRunResult(tg.createRaceParticipant(), new TimeSpan(0, 8, 0, 2), new TimeSpan(0, 8, 1, 2))
            };

            List <TimingData> hts1 = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 2, 301)
                }
            };

            htVM.AddRunResults(rr1);
            htVM.AddHandTimings(hts1);

            // Check Pre-Condition
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2), htVM.Items[0].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2, 301), htVM.Items[0].HandTime);
            Assert.AreEqual(new TimeSpan(0, 0, 0, 0, 300), htVM.Items[0].HandTimeDiff);

            // Operation
            htVM.Dissolve(htVM.Items[0]);

            // Check Post-Condition
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2), htVM.Items[0].ATime);
            Assert.IsNull(htVM.Items[0].HandTime);
            Assert.IsNull(htVM.Items[0].HandTimeDiff);

            Assert.IsNull(htVM.Items[1].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2, 301), htVM.Items[1].HandTime);
            Assert.IsNull(htVM.Items[1].HandTimeDiff);
        }
Пример #9
0
        public void HandTimingVMManager_StoreAndLoad()
        {
            TestDataGenerator tg = new TestDataGenerator();

            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(tg.createRaceParticipant(), new TimeSpan(0, 8, 0, 2), new TimeSpan(0, 8, 1, 2));
            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(tg.createRaceParticipant(), new TimeSpan(0, 8, 2, 2), new TimeSpan(0, 8, 3, 2));
            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(tg.createRaceParticipant(), new TimeSpan(0, 8, 4, 2), null);
            tg.Model.GetRace(0).GetRun(0).SetStartFinishTime(tg.createRaceParticipant(), new TimeSpan(0, 8, 6, 2), new TimeSpan(0, 8, 7, 2));


            HandTimingVMManager mgr   = new HandTimingVMManager(tg.Model);
            HandTimingVM        htVMS = mgr.GetHandTimingVM(tg.Model.GetRace(0), tg.Model.GetRace(0).GetRun(0), HandTimingVMEntry.ETimeModus.EStartTime);
            HandTimingVM        htVMF = mgr.GetHandTimingVM(tg.Model.GetRace(0), tg.Model.GetRace(0).GetRun(0), HandTimingVMEntry.ETimeModus.EFinishTime);

            List <TimingData> hts = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 2, 100)
                },
                //new TimingData{Time = new TimeSpan(0, 8,  2, 2, 200)},
                new TimingData {
                    Time = new TimeSpan(0, 8, 4, 2, 300)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 6, 2, 400)
                }
            };

            htVMS.AddHandTimings(hts);

            List <TimingData> htf = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 1, 2, 100)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 3, 2, 200)
                },
                //new TimingData{Time = new TimeSpan(0, 8,  5, 2, 300)},
                new TimingData {
                    Time = new TimeSpan(0, 8, 7, 2, 400)
                }
            };

            htVMF.AddHandTimings(htf);


            mgr.SaveHandTimingToFile();



            HandTimingVMManager mgr2   = new HandTimingVMManager(tg.Model);
            HandTimingVM        htVMS2 = mgr2.GetHandTimingVM(tg.Model.GetRace(0), tg.Model.GetRace(0).GetRun(0), HandTimingVMEntry.ETimeModus.EStartTime);
            HandTimingVM        htVMF2 = mgr2.GetHandTimingVM(tg.Model.GetRace(0), tg.Model.GetRace(0).GetRun(0), HandTimingVMEntry.ETimeModus.EFinishTime);

            mgr2.LoadHandTimingFromFile();

            for (int i = 0; i < htVMS2.Items.Count; i++)
            {
                Assert.AreEqual(htVMS.Items[i].HandTime, htVMS2.Items[i].HandTime);
            }
            for (int i = 0; i < htVMF2.Items.Count; i++)
            {
                Assert.AreEqual(htVMF.Items[i].HandTime, htVMF2.Items[i].HandTime);
            }
        }
Пример #10
0
        public void HandTimingsVM_AssignStartNumber()
        {
            TestDataGenerator tg = new TestDataGenerator();

            HandTimingVM htVM = new HandTimingVM(HandTimingVMEntry.ETimeModus.EStartTime);

            List <RunResult> rr1 = new List <RunResult>
            {
                tg.createRunResult(tg.createRaceParticipant(), null, new TimeSpan(0, 8, 1, 2))
            };

            List <TimingData> hts1 = new List <TimingData>
            {
                new TimingData {
                    Time = new TimeSpan(0, 8, 0, 2, 301)
                },
                new TimingData {
                    Time = new TimeSpan(0, 8, 5, 2, 300)
                }
            };

            htVM.AddRunResults(rr1);
            htVM.AddHandTimings(hts1);

            // ***** Case 1: Merge entries ****

            // Check Pre-Condition
            Assert.IsNull(htVM.Items[0].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2, 301), htVM.Items[0].HandTime);
            Assert.IsNull(htVM.Items[0].HandTimeDiff);

            Assert.AreEqual(1U, htVM.Items[2].StartNumber);
            Assert.IsNull(htVM.Items[2].ATime);
            Assert.IsNull(htVM.Items[2].HandTime);
            Assert.IsNull(htVM.Items[2].HandTimeDiff);

            Assert.AreEqual(3, htVM.Items.Count);

            // Operation
            htVM.AssignStartNumber(htVM.Items[0], 1);

            // Check Post-Condition
            Assert.AreEqual(1U, htVM.Items[0].StartNumber);
            Assert.IsNull(htVM.Items[0].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 0, 2, 301), htVM.Items[0].HandTime);
            Assert.IsNull(htVM.Items[0].HandTimeDiff);
            Assert.IsNull(htVM.Items[0].StartTime);
            Assert.AreEqual(new TimeSpan(0, 8, 1, 2), htVM.Items[0].FinishTime);

            Assert.AreEqual(2, htVM.Items.Count);



            // ***** Case 2: Adjust entry ****

            // Check Pre-Condition
            Assert.IsNull(htVM.Items[1].StartNumber);
            Assert.IsNull(htVM.Items[1].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 5, 2, 300), htVM.Items[1].HandTime);
            Assert.IsNull(htVM.Items[1].HandTimeDiff);

            // Operation
            htVM.AssignStartNumber(htVM.Items[1], 2);

            // Check Post-Condition
            Assert.AreEqual(2U, htVM.Items[1].StartNumber);
            Assert.IsNull(htVM.Items[1].ATime);
            Assert.AreEqual(new TimeSpan(0, 8, 5, 2, 300), htVM.Items[1].HandTime);
            Assert.IsNull(htVM.Items[1].HandTimeDiff);
            Assert.IsNull(htVM.Items[1].StartTime);
            Assert.IsNull(htVM.Items[1].FinishTime);

            Assert.AreEqual(2, htVM.Items.Count);
        }