def test_get_conversion(self): d = Domain((age, gender, income), metas=(ssn, race)) e = Domain((gender, race), None, metas=(age, gender, ssn)) f = Domain((gender, ), (race, income), metas=(age, income, ssn)) g = Domain((), metas=(age, gender, ssn)) d_to_e = e.get_conversion(d) self.assertIs(d_to_e.source, d) self.assertEqual(d_to_e.attributes, [1, -2]) self.assertEqual(d_to_e.class_vars, []) self.assertEqual(d_to_e.metas, [0, 1, -1]) d_to_e = e.get_conversion(d) self.assertIs(d_to_e.source, d) self.assertEqual(d_to_e.attributes, [1, -2]) self.assertEqual(d_to_e.class_vars, []) self.assertEqual(d_to_e.metas, [0, 1, -1]) d_to_f = f.get_conversion(d) self.assertIs(d_to_f.source, d) self.assertEqual(d_to_f.attributes, [1]) self.assertEqual(d_to_f.class_vars, [-2, 2]) self.assertEqual(d_to_f.metas, [0, 2, -1]) d_to_e = e.get_conversion(d) self.assertIs(d_to_e.source, d) self.assertEqual(d_to_e.attributes, [1, -2]) self.assertEqual(d_to_e.class_vars, []) self.assertEqual(d_to_e.metas, [0, 1, -1]) d_to_f = f.get_conversion(d) self.assertIs(d_to_f.source, d) self.assertEqual(d_to_f.attributes, [1]) self.assertEqual(d_to_f.class_vars, [-2, 2]) self.assertEqual(d_to_f.metas, [0, 2, -1]) f_to_g = g.get_conversion(f) self.assertIs(f_to_g.source, f) self.assertEqual(f_to_g.attributes, []) self.assertEqual(f_to_g.class_vars, []) self.assertEqual(f_to_g.metas, [-1, 0, -3]) x = lambda: 42 new_income = income.copy(compute_value=x) h = Domain((gender, ), (race, new_income), metas=(age, new_income, ssn)) g_to_h = h.get_conversion(g) self.assertIs(g_to_h.source, g) self.assertEqual(g_to_h.attributes, [-2]) self.assertEqual(g_to_h.class_vars, [None, x]) self.assertEqual(g_to_h.metas, [-1, x, -3])
def test_get_conversion(self): d = Domain((age, gender, income), metas=(ssn, race)) e = Domain((gender, race), None, metas=(age, gender, ssn)) f = Domain((gender,), (race, income), metas=(age, income, ssn)) g = Domain((), metas=(age, gender, ssn)) d_to_e = e.get_conversion(d) self.assertIs(d_to_e.source, d) self.assertEqual(d_to_e.attributes, [1, -2]) self.assertEqual(d_to_e.class_vars, []) self.assertEqual(d_to_e.metas, [0, 1, -1]) d_to_e = e.get_conversion(d) self.assertIs(d_to_e.source, d) self.assertEqual(d_to_e.attributes, [1, -2]) self.assertEqual(d_to_e.class_vars, []) self.assertEqual(d_to_e.metas, [0, 1, -1]) d_to_f = f.get_conversion(d) self.assertIs(d_to_f.source, d) self.assertEqual(d_to_f.attributes, [1]) self.assertEqual(d_to_f.class_vars, [-2, 2]) self.assertEqual(d_to_f.metas, [0, 2, -1]) d_to_e = e.get_conversion(d) self.assertIs(d_to_e.source, d) self.assertEqual(d_to_e.attributes, [1, -2]) self.assertEqual(d_to_e.class_vars, []) self.assertEqual(d_to_e.metas, [0, 1, -1]) d_to_f = f.get_conversion(d) self.assertIs(d_to_f.source, d) self.assertEqual(d_to_f.attributes, [1]) self.assertEqual(d_to_f.class_vars, [-2, 2]) self.assertEqual(d_to_f.metas, [0, 2, -1]) f_to_g = g.get_conversion(f) self.assertIs(f_to_g.source, f) self.assertEqual(f_to_g.attributes, []) self.assertEqual(f_to_g.class_vars, []) self.assertEqual(f_to_g.metas, [-1, 0, -3]) x = lambda: 42 new_income = income.copy(compute_value=x) h = Domain((gender,), (race, new_income), metas=(age, new_income, ssn)) g_to_h = h.get_conversion(g) self.assertIs(g_to_h.source, g) self.assertEqual(g_to_h.attributes, [-2]) self.assertEqual(g_to_h.class_vars, [None, x]) self.assertEqual(g_to_h.metas, [-1, x, -3])