def test_score_idiv(self):
        score_for_comparison = Score(score_for_check / weight_for_check1)
        score1 = Score(score_for_check)
        weight1 = weight_for_check1
        score1 /= weight1

        self.assertEqual(score1, score_for_comparison)
    def test_score_imul(self):
        score_for_comparison = Score(score_for_check * weight_for_check)
        score1 = Score(score_for_check)
        weight1 = weight_for_check
        score1 *= weight1

        self.assertEqual(score1, score_for_comparison)
    def test_score_add(self):
        score_for_comparison = Score(score_for_check1 + score_for_check2)

        score1 = Score(score_for_check1)
        score2 = Score(score_for_check2)
        score3 = score1 + score2

        self.assertEqual(score3, score_for_comparison)
 def test_Chi2Test_chi2(self):
     """Test χ² comparison (χ²)"""
     cmpfn = Chi2Test()
     dqscore = cmpfn.compare(self.hdata, self.href, 'chi2')
     self.assertGreaterEqual(dqscore['score'], Score(50))
     self.assertEqual(dqscore['lvl'], ERROR_LEVELS.OK)
     dqscore = cmpfn.compare(self.hdata, self.href, 'chi2/ndf')
     self.assertGreaterEqual(dqscore['score'], Score(50))
     self.assertEqual(dqscore['lvl'], ERROR_LEVELS.OK)
 def test_Chi2Test_pvalue(self):
     """Test χ² comparison (pvalue)"""
     cmpfn = Chi2Test()
     dqscore = cmpfn.compare(self.hdata, self.href, '')
     self.assertGreaterEqual(dqscore['score'], Score(5))
     self.assertEqual(dqscore['lvl'], ERROR_LEVELS.OK)
     dqscore = cmpfn.compare(self.hdata_bad, self.href, '')
     self.assertLess(dqscore['score'], Score(5))
     self.assertNotEqual(dqscore['lvl'], ERROR_LEVELS.OK)
 def test_KolmogorovSmirnovTest_prob(self):
     """Test KS comparison (probability)"""
     cmpfn = KolmogorovSmirnovTest()
     dqscore = cmpfn.compare(self.hdata, self.href, '')
     self.assertGreaterEqual(dqscore['score'], Score(5))
     self.assertEqual(dqscore['lvl'], ERROR_LEVELS.OK)
     dqscore = cmpfn.compare(self.hdata_bad, self.href, '')
     self.assertLess(dqscore['score'], Score(5))
     self.assertNotEqual(dqscore['lvl'], ERROR_LEVELS.OK)
    def test_score_cmp(self):
        score1 = Score(score_for_check)

        score_thesame = Score(score_for_check)
        score_lower = Score(score_for_check - 1)
        score_higher = Score(score_for_check + 1)

        self.assertEqual(score1, score_thesame)
        self.assertGreater(score1, score_lower)
        self.assertLess(score1, score_higher)
 def test_ceiling_both(self):
     """Test ceiling threshold"""
     self.hdata.FillRandom('pol0', 10000)
     cmpfn = CeilingThreshold()
     # each bin has ~100 (=10000/100) entires, +/- 3*sqrt(100)=30
     dqscore = cmpfn.compare(self.hdata, self.href, 100 + 30)
     self.assertEqual(Score(100), dqscore['score'])
     self.assertEqual(ERROR_LEVELS.OK, dqscore['lvl'])
     dqscore = cmpfn.compare(self.hdata, self.href, 100 + 10)
     self.assertEqual(Score(0), dqscore['score'])
     self.assertEqual(ERROR_LEVELS.ERROR, dqscore['lvl'])
 def test_mean_width_diff_warn(self):
     """Test mean and width check with reference (WARNING)"""
     fn0 = get_fns('TMath::Gaus', (0, 3), (-10, 10))
     fn1 = get_fns('TMath::Gaus', (1, 3), (-10, 10))
     self.hdata.FillRandom(fn0[0], 20000)
     self.href.FillRandom(fn1[0], 10000)
     cmpfn = MeanWidthDiffRef()
     # mean = 0 & 1, width = 3 (RMS)
     dqscore = cmpfn.compare(self.hdata, self.href, 0.1)
     self.assertTrue(dqscore['score'] < Score(40)
                     and dqscore['score'] > Score(20))
     self.assertEqual(dqscore['lvl'], ERROR_LEVELS.WARNING)
    def test_score_init(self):
        string_for_check = "{:.2f}%".format(score_for_check)

        tested_score = Score(score_for_check)

        self.assertEqual(tested_score.value, score_for_check)
        self.assertEqual(str(tested_score), string_for_check)
 def test_mean_width_diff_ok(self):
     """Test mean and width check with reference (OK)"""
     fn = get_fns('TMath::Gaus', (0, 3), (-10, 10))
     self.hdata.FillRandom(fn[0], 20000)
     self.href.FillRandom(fn[0], 10000)
     cmpfn = MeanWidthDiffRef()
     # mean = 0, width = 3 (RMS)
     dqscore = cmpfn.compare(self.hdata, self.href, 0.1)
     self.assertTrue(dqscore['score'] > Score(90))
     self.assertEqual(dqscore['lvl'], ERROR_LEVELS.OK)
Exemple #12
0
    def setUp(self):
        """Create dictionaries needed by combiners."""

        dirname = os.path.join(os.path.dirname(__file__), 'fixtures')
        orfdata = TFile(
            os.path.abspath(os.path.join(dirname, 'dqm_data.root')), 'read')
        orfref = TFile(os.path.abspath(os.path.join(dirname, 'dqm_ref.root')),
                       'read')

        # valid ROOT files
        assert (not orfdata.IsZombie())
        assert (not orfref.IsZombie())

        self.tdir = tempfile.mkdtemp()
        self.rfdata = TFile(os.path.join(self.tdir, 'fdata.root'), 'recreate')
        self.rfref = TFile(os.path.join(self.tdir, 'fref.root'), 'recreate')

        hist_recipes = [
            (get_avg_trend, 'Vetra/NoiseMon/ADCCMSuppressed',
             ('RMSNoise_vs_ChipChannel', 'AvgRMSNoise_trend')),
            (get_avg_hist, 'Vetra/NoiseMon/ADCCMSuppressed',
             ('RMSNoise_vs_ChipChannel', 'AvgRMSNoise_all')),
            (get_avg_hist, 'Vetra/NoiseMon/ADCCMSuppressed',
             ('RMSNoise_vs_ChipChannel', 'AvgRMSNoise_R', 'r')),
            (get_avg_hist, 'Vetra/NoiseMon/ADCCMSuppressed',
             ('RMSNoise_vs_ChipChannel', 'AvgRMSNoise_Phi', 'p')),
            # (get_avg_hist, 'Vetra/VeloPedestalSubtractorMoni',
            #  ('Ped_Sub_ADCs_Profile', 'Ped_Sub_ADCs_all'))
        ]
        # histograms: make, save, and cleanup
        for recipe in hist_recipes:
            href = recipe[0](orfref.GetDirectory(recipe[1]), *recipe[2])
            self.rfref.WriteTObject(href)
            del href
            hdata = recipe[0](orfdata.GetDirectory(recipe[1]), *recipe[2])
            self.rfdata.WriteTObject(hdata)
            del hdata
        self.rfref.Close()
        self.rfdata.Close()

        # Write DQ database to temp directory (rather than run directory)
        Config().dq_db_file_path = os.path.join(self.tdir, Config().dq_db)

        configfile = os.path.join(os.path.dirname(__file__),
                                  'analysis_config_test.py')
        with open(configfile, 'r') as inputFile:
            exec(inputFile.read())
        config = AnalysisConfigWrapper(
            (analysis_config_branches, analysis_config_leaves))
        self.mycombiner = config.getTrunk(orfdata.GetName(), orfref.GetName())

        # Results to compare against
        self.results = {"score": Score(70.62594356001006), "lvl": ERROR}
 def test_score_adding(self):
     with self.assertRaises(AddingScoreException):
         Score(score_for_check) + Score(score_for_check1)
 def test_score_assignment(self):
     with self.assertRaises(ScoreAssignmentException):
         Score(score_for_check_exc)
    def test_score_iadd(self):
        score_for_comparison = Score(score_for_check1 + score_for_check2)
        score1 = Score(score_for_check1)
        score1 += Score(score_for_check2)

        self.assertEqual(score1, score_for_comparison)