コード例 #1
0
 def test_validate_contributions_1(self):
     """
     Unit test validate contributions 1
     """
     xpl = SmartExplainer()
     contributions = [
         np.array([[2, 1], [8, 4]]),
         np.array([[5, 5], [0, 0]])
     ]
     model = Mock()
     model._classes = np.array([1, 3])
     model.predict = types.MethodType(self.predict, model)
     model.predict_proba = types.MethodType(self.predict_proba, model)
     xpl.model = model
     xpl._case = "classification"
     xpl._classes = list(model._classes)
     xpl.state = xpl.choose_state(contributions)
     xpl.x_init = pd.DataFrame([[1, 2], [3, 4]],
                               columns=['Col1', 'Col2'],
                               index=['Id1', 'Id2'])
     expected_output = [
         pd.DataFrame([[2, 1], [8, 4]],
                      columns=['Col1', 'Col2'],
                      index=['Id1', 'Id2']),
         pd.DataFrame([[5, 5], [0, 0]],
                      columns=['Col1', 'Col2'],
                      index=['Id1', 'Id2'])
     ]
     output = xpl.validate_contributions(contributions)
     assert len(expected_output) == len(output)
     test_list = [
         pd.testing.assert_frame_equal(e, m)
         for e, m in zip(expected_output, output)
     ]
     assert all(x is None for x in test_list)
コード例 #2
0
 def test_check_label_dict_1(self):
     """
     Unit test check label dict 1
     """
     xpl = SmartExplainer(label_dict={1: 'Yes', 0: 'No'})
     xpl._classes = [0, 1]
     xpl._case = 'classification'
     xpl.check_label_dict()
コード例 #3
0
 def test_add_2(self):
     """
     Unit test add 2
     """
     xpl = SmartExplainer()
     xpl._classes = [0, 1]
     xpl._case = "classification"
     xpl.add(label_dict={0: 'Zero', 1: 'One'})
     assert xpl.label_dict[0] == 'Zero'
     assert xpl.label_dict[1] == 'One'
コード例 #4
0
 def test_check_label_name_5(self):
     """
     Unit test check label name 5
     """
     label_dict = {1: 'Age', 2: 'Education'}
     xpl = SmartExplainer(label_dict=label_dict)
     xpl.inv_label_dict = {v: k for k, v in xpl.label_dict.items()}
     xpl._classes = [1, 2]
     label = 'Absent'
     expected_msg = f"Label (Absent) not found for origin (value)"
     origin = 'value'
     self.assertRaisesWithMessage(expected_msg, xpl.check_label_name, **{'label': label, 'origin': origin})
コード例 #5
0
 def test_check_label_name_2(self):
     """
     Unit test check label name 2
     """
     xpl = SmartExplainer(label_dict = None)
     xpl._classes = [1, 2]
     entry = 1
     expected_num = 0
     expected_code = 1
     expected_value = 1
     label_num, label_code, label_value = xpl.check_label_name(entry, 'code')
     assert expected_num == label_num
     assert expected_code == label_code
     assert expected_value == label_value
コード例 #6
0
 def test_check_label_name_3(self):
     """
     Unit test check label name 3
     """
     label_dict = {1: 'Age', 2: 'Education'}
     xpl = SmartExplainer(label_dict=label_dict)
     xpl.inv_label_dict = {v: k for k, v in xpl.label_dict.items()}
     xpl._classes = [1, 2]
     entry = 0
     expected_num = 0
     expected_code = 1
     expected_value = 'Age'
     label_num, label_code, label_value = xpl.check_label_name(entry, 'num')
     assert expected_num == label_num
     assert expected_code == label_code
     assert expected_value == label_value