예제 #1
0
        public void FullTest()
        {
            // Preparation & Test Description
            // - Copy DB
            // - Delete the tlbZeit
            // - Run ALGE DG 1
            // - Compare results DG1
            // - Run ALGE DG 2
            // - Compare results DG2

            string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"KSC4--U12.mdb");

            // Create working copy
            string          dbFilenameWork = TestUtilities.Copy(dbFilename, @"KSC4--U12_work.mdb");
            DBTestUtilities dbtuDst        = new DBTestUtilities(dbFilenameWork);

            dbtuDst.ClearTimeMeasurements();
            dbtuDst.Close();

            testRun(0, @"KSC4--U12_ALGE_Run1.txt");
            testRun(1, @"KSC4--U12_ALGE_Run2.txt");

            void testRun(int run, string testfile)
            {
                // Setup Data Model & Co for Simulating ALGE
                Database dbWork = new Database();

                dbWork.Connect(dbFilenameWork);
                AppDataModel          modelWork             = new AppDataModel(dbWork);
                LiveTimingMeasurement liveTimingMeasurement = new LiveTimingMeasurement(modelWork);

                ALGETdC8001TimeMeasurementSimulate algeSimulator = new ALGETdC8001TimeMeasurementSimulate(testfile);

                liveTimingMeasurement.SetTimingDevice(algeSimulator, algeSimulator);
                algeSimulator.Start();

                modelWork.SetCurrentRaceRun(modelWork.GetRace(0).GetRun(run));

                liveTimingMeasurement.Start();
                while (algeSimulator.ProcessNextLine())
                {
                }
                liveTimingMeasurement.Stop();
                algeSimulator.Stop();

                dbWork.Close();

                // Compare the generated DB with the ground truth DB
                Database dbCmpWork = new Database();

                dbCmpWork.Connect(dbFilenameWork);
                AppDataModel modelCmpWork = new AppDataModel(dbCmpWork);

                Database dbSrc = new Database();

                dbSrc.Connect(dbFilename);
                AppDataModel modelSrc = new AppDataModel(dbSrc);

                foreach (var res in modelSrc.GetRace(0).GetRun(run).GetResultList())
                {
                    if (res.ResultCode == RunResult.EResultCode.Normal)
                    {
                        var resWork = modelCmpWork.GetRace(0).GetRun(run).GetResultList().FirstOrDefault(r => r.StartNumber == res.StartNumber);

                        Assert.AreEqual(res.GetStartTime(), resWork.GetStartTime());
                        Assert.AreEqual(res.GetFinishTime(), resWork.GetFinishTime());
                        Assert.AreEqual(res.GetRunTime(), resWork.GetRunTime());
                    }
                }
            }
        }
예제 #2
0
        public void HandleUncommonInput()
        {
            ALGETdC8001TimeMeasurementSimulate alge = new ALGETdC8001TimeMeasurementSimulate(string.Empty);

            alge.SimulteProcessLine("                                ");
        }