def test_verbose_conflict_resolution(self): names = [['d', 'c', 'a'], ['d', 'c', 'b']] resolved = column_names(NameStrategy.CONCATENATE_CONFLICTS, names) self.assertEqual(['a_d', 'b_d'], resolved) resolved = column_names(NameStrategy.CONCATENATE_CONFLICTS_VERBOSE, names) self.assertEqual(['a_c_d', 'b_c_d'], resolved) resolved = column_names(NameStrategy.CONCATENATE_ALWAYS, names) self.assertEqual(['a_c_d', 'b_c_d'], resolved)
def test_overlapping_names(self): names = [['b'], ['b', 'a'], ['b', 'a', 'z']] resolved = column_names(NameStrategy.CONCATENATE_CONFLICTS, names) self.assertEqual(['b', 'a_b', 'z_a_b'], resolved) resolved = column_names(NameStrategy.CONCATENATE_CONFLICTS_VERBOSE, names) self.assertEqual(['b', 'a_b', 'z_a_b'], resolved) resolved = column_names(NameStrategy.CONCATENATE_ALWAYS, names) self.assertEqual(['b', 'a_b', 'z_a_b'], resolved)
def test_simple_resolution(self): names = [['a'], ['b']] resolved = column_names(NameStrategy.CONCATENATE_CONFLICTS, names) self.assertEqual(['a', 'b'], resolved) resolved = column_names(NameStrategy.CONCATENATE_CONFLICTS_VERBOSE, names) self.assertEqual(['a', 'b'], resolved) resolved = column_names(NameStrategy.CONCATENATE_ALWAYS, names) self.assertEqual(['a', 'b'], resolved)
def test_tuple_naming(self): names = [['c', 'a'], ['b']] resolved = column_names(NameStrategy.MULTI_INDEX, names) self.assertEqual([('a', 'c'), ('b', '')], resolved)
def test_exact_match(self): self.assertRaises(ValueError, lambda: column_names(NameStrategy.CONCATENATE_CONFLICTS, [['b'], ['b']]))