コード例 #1
0
    def test_first_ignored_unit(self):
        """
        Tests prepare_for_calculation when the first item needs to be ignored
        """
        pair1 = ('concept1', [
            Mock(contextID='context1',
                 unitID='unit1',
                 isNil=False,
                 xValid=True)
        ])
        pair2 = ('concept2', [
            Mock(contextID='context1',
                 unitID='unit2',
                 isNil=False,
                 xValid=True)
        ])
        pair3 = ('concept3', [
            Mock(contextID='context1',
                 unitID='unit2',
                 isNil=False,
                 xValid=True)
        ])

        fact_dict_ordered = OrderedDict([pair1, pair2, pair3])

        keys = list(fact_dict_ordered.keys())
        self.assertEqual('concept1', keys[0])

        prepared = fact_lib.prepare_facts_for_calculation(
            fact_dict_ordered, unit_ignored_dict={'concept1': True})
        self.assertEqual(1, len(prepared))
コード例 #2
0
 def test_prepare_facts_for_calculation_happy_path(self):
     """
     Tests to see prepare_facts_for_calculation works correctly when there
     is an easy path
     """
     fact_dict = {
         'concept1': [
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True)
         ],
         'concept2': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True)
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(fact_dict)
     self.assertEqual(2, len(prepared))
     for fs in prepared:
         self.assertEqual(2, len(fs))
         self.assertEqual(fs['concept1'].contextID,
                          fs['concept2'].contextID)
         self.assertEqual(fs['concept1'].unitID, fs['concept2'].unitID)
コード例 #3
0
 def test_ignore_units_single_item(self):
     """
     Tests prepare_facts_for_calculation when the last item needs to be
     ignored
     """
     fact_dict = {
         'concept1': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True)
         ],
         'concept2': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True)
         ],
         'concept3': [
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True)
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(
         fact_dict, unit_ignored_dict={'concept3': True})
     self.assertEqual(1, len(prepared))
コード例 #4
0
 def test_ignore_units_single_item(self):
     """
     Tests prepare_facts_for_calculation when the last item needs to be
     ignored
     """
     fact_dict = {
         'concept1': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             )
         ],
         'concept2': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             )
         ],
         'concept3': [
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             )
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(
         fact_dict, unit_ignored_dict={'concept3': True}
     )
     self.assertEqual(1, len(prepared))
コード例 #5
0
 def test_prepare_facts_for_calculation_happy_path(self):
     """
     Tests to see prepare_facts_for_calculation works correctly when there
     is an easy path
     """
     fact_dict = {
         'concept1': [
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             )
         ],
         'concept2': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             )
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(fact_dict)
     self.assertEqual(2, len(prepared))
     for fs in prepared:
         self.assertEqual(2, len(fs))
         self.assertEqual(
             fs['concept1'].contextID, fs['concept2'].contextID
         )
         self.assertEqual(fs['concept1'].unitID, fs['concept2'].unitID)
コード例 #6
0
ファイル: test_facts.py プロジェクト: Workiva/dqc_us_rules
 def test_prepare_facts_for_calculation_happy_path(self):
     fact_dict = {'concept1': [Mock(contextID='context1', unitID='unit2', isNil=False, xValid=True), Mock(contextID='context1', unitID='unit1', isNil=False, xValid=True)],
                  'concept2': [Mock(contextID='context1', unitID='unit1', isNil=False, xValid=True), Mock(contextID='context1', unitID='unit2', isNil=False, xValid=True)],
                  }
     prepared = fact_lib.prepare_facts_for_calculation(fact_dict)
     self.assertEqual(2, len(prepared))
     for fs in prepared:
         self.assertEqual(2, len(fs))
         self.assertEqual(fs['concept1'].contextID, fs['concept2'].contextID)
         self.assertEqual(fs['concept1'].unitID, fs['concept2'].unitID)
コード例 #7
0
 def test_prepare_facts_for_calculation_mixed_bag(self):
     """
     Tests to see if prepare_facts_for_calculation works when the path is
     not easy
     """
     fact_dict = {
         'concept1': [
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             )
         ],
         'concept2': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             )
         ],
         'concept3': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context2', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(contextID=None, isNil=False, xValid=True)
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(fact_dict)
     self.assertEqual(1, len(prepared))
     for fs in prepared:
         self.assertEqual(3, len(fs))
         self.assertEqual(
             fs['concept1'].contextID, fs['concept2'].contextID
         )
         self.assertEqual(
             fs['concept1'].contextID, fs['concept3'].contextID
         )
         self.assertEqual(fs['concept1'].unitID, fs['concept2'].unitID)
         self.assertEqual(fs['concept1'].unitID, fs['concept3'].unitID)
コード例 #8
0
 def test_prepare_facts_for_calculation_mixed_bag(self):
     """
     Tests to see if prepare_facts_for_calculation works when the path is
     not easy
     """
     fact_dict = {
         'concept1': [
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True)
         ],
         'concept2': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True)
         ],
         'concept3': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context2',
                  unitID='unit2',
                  isNil=False,
                  xValid=True),
             Mock(contextID=None, isNil=False, xValid=True)
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(fact_dict)
     self.assertEqual(1, len(prepared))
     for fs in prepared:
         self.assertEqual(3, len(fs))
         self.assertEqual(fs['concept1'].contextID,
                          fs['concept2'].contextID)
         self.assertEqual(fs['concept1'].contextID,
                          fs['concept3'].contextID)
         self.assertEqual(fs['concept1'].unitID, fs['concept2'].unitID)
         self.assertEqual(fs['concept1'].unitID, fs['concept3'].unitID)
コード例 #9
0
 def test_ignore_units_clean(self):
     """
     Tests prepare_facts_for_calculation when ignore units is on but nothing
     needs to be ignored
     """
     fact_dict = {
         'concept1': [
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             )
         ],
         'concept2': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             )
         ],
         'concept3': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context2', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(contextID=None)
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(
         fact_dict, unit_ignored_dict={'concept3': True}
     )
     self.assertEqual(2, len(prepared))
コード例 #10
0
 def test_ignore_units_clean(self):
     """
     Tests prepare_facts_for_calculation when ignore units is on but nothing
     needs to be ignored
     """
     fact_dict = {
         'concept1': [
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True)
         ],
         'concept2': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context1',
                  unitID='unit2',
                  isNil=False,
                  xValid=True)
         ],
         'concept3': [
             Mock(contextID='context1',
                  unitID='unit1',
                  isNil=False,
                  xValid=True),
             Mock(contextID='context2',
                  unitID='unit2',
                  isNil=False,
                  xValid=True),
             Mock(contextID=None)
         ],
     }
     prepared = fact_lib.prepare_facts_for_calculation(
         fact_dict, unit_ignored_dict={'concept3': True})
     self.assertEqual(2, len(prepared))
コード例 #11
0
    def test_first_ignored_unit(self):
        """
        Tests prepare_for_calculation when the first item needs to be ignored
        """
        pair1 = (
            'concept1',
            [
                Mock(
                    contextID='context1', unitID='unit1',
                    isNil=False, xValid=True
                )
            ]
        )
        pair2 = (
            'concept2',
            [
                Mock(
                    contextID='context1', unitID='unit2',
                    isNil=False, xValid=True
                )
            ]
        )
        pair3 = (
            'concept3',
            [
                Mock(
                    contextID='context1', unitID='unit2',
                    isNil=False, xValid=True
                )
            ]
        )

        fact_dict_ordered = OrderedDict([pair1, pair2, pair3])

        keys = list(fact_dict_ordered.keys())
        self.assertEqual('concept1', keys[0])

        prepared = fact_lib.prepare_facts_for_calculation(
            fact_dict_ordered, unit_ignored_dict={'concept1': True}
        )
        self.assertEqual(1, len(prepared))
コード例 #12
0
ファイル: test_facts.py プロジェクト: Workiva/dqc_us_rules
 def test_ignore_units(self):
     fact_dict = {
         'concept1': [
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             )
         ],
         'concept2': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             )
         ],
         'concept3': [
             Mock(
                 contextID='context1', unitID='unit1',
                 isNil=False, xValid=True
             ),
             Mock(
                 contextID='context1', unitID='unit2',
                 isNil=False, xValid=True
             ),
             Mock(contextID=None, isNil=False, xValid=True)
         ]
     }
     prepared = fact_lib.prepare_facts_for_calculation(
         fact_dict, unit_ignored_dict={'concept3': True}
     )
     self.assertEqual(0, len(prepared))