예제 #1
0
        public void TestfindFirtDiagnosisHaltByQuantiy()
        {
            const int quantity          = 4;
            var       mockDiagnosisList = ConstraintSystemSolverMock.getInstance().GetDiagnosisSet();

            var diagnosisSet = SwitchingDiagnosticEngine.FindDiagnosisHaltByQuantiy(_observations[TestingEnvironment.ObservationIndex], _initialConflictSet, null, quantity);

            PrintSetList(diagnosisSet, "Diagnosis_" + TestingEnvironment.SystemFile);
            Assert.IsTrue(mockDiagnosisList.Count < quantity || diagnosisSet.Count >= quantity);
        }
예제 #2
0
        public void TestFindDiagnosisHaltByFirstDiagnosis()
        {
            List <HashSet <int> > mockDiagnosisList = ConstraintSystemSolverMock.getInstance().GetDiagnosisSet();

            DiagnosisSet diagnosisSet = SwitchingDiagnosticEngine.FindDiagnosisHaltByFirstDiagnosis(_observations[TestingEnvironment.ObservationIndex], _initialConflictSet, null);

            PrintSetList(diagnosisSet, "Diagnosis_" + TestingEnvironment.SystemFile);

            Assert.IsTrue(diagnosisSet.Count >= 1);
        }
예제 #3
0
        public void TestfindFirtDiagnosisHaltByTime()
        {
            const int timeOut = 20 * 60 * 1000;
            const int epsilon = timeOut / 5; //error margin if timer is called in the begining of the while loop

            var mockDiagnosisList = ConstraintSystemSolverMock.getInstance().GetDiagnosisSet();
            var sw = new Stopwatch();

            sw.Start();
            var diagnosisSet = SwitchingDiagnosticEngine.FindDiagnosisHaltByTime(_observations[TestingEnvironment.ObservationIndex], _initialConflictSet, null, timeOut);

            sw.Stop();
            PrintSetList(diagnosisSet, "Diagnosis_" + TestingEnvironment.SystemFile);

            var algorithmFoundAll = diagnosisSet.Count == mockDiagnosisList.Count;

            Assert.IsTrue(sw.ElapsedMilliseconds <= (timeOut + epsilon) && (algorithmFoundAll || sw.ElapsedMilliseconds >= (timeOut)));
        }