def test_delete_tuple_index_values_with_frozen_pivot1(self): """test that delete_tuple_index_values deletes data when pivot has frozen dimension""" model = PivotModel() tuple_entries = {('test1','test2'):set()} model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries=tuple_entries) model.set_pivot(['test1','test3'], [], ['test2'], ('aa',)) model.delete_tuple_index_values({('test1', 'test2'): set([('a','aa')])}) self.assertEqual(model._row_data_header, [])
def test_delete_tuple_index_values_with_frozen_pivot4(self): """test that delete_tuple_index_values doesn't delete data when pivot has frozen dimension when frozen value doesn't match delete value, column""" model = PivotModel() tuple_entries = {('test1','test2'):set()} model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries=tuple_entries) model.set_pivot([], ['test1','test3'], ['test2'], ('aa',)) model.delete_tuple_index_values({('test1', 'test2'): set([('a','bb')])}) self.assertEqual(model._column_data_header, [('a',1),('a',None)])
def test_get_pivoted_data1(self): """get data with pivot and frozen index and tuple_index_entries""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries=self.tuple_index_entries) model.set_pivot(['test2'], ['test3'], ['test1'], ('a',)) data = [['value_a_aa_1', None, None, None, None, None], [None, 'value_a_bb_2', None, None, None, None], [None, None, None, None, None, None]] data_model = [[d for d in inner] for inner in model.get_pivoted_data(range(3),range(6))] self.assertEqual(data_model, data)
def test_get_pivoted_data3(self): """get data from pivoted model""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model.set_pivot(['test1','test2'], ['test3'], [], ()) data = [['value_a_aa_1', None, None, None, None], [None, 'value_a_bb_2', None, None, None], [None, None, 'value_b_cc_3', None, None], [None, None, None, 'value_c_cc_4', None], [None, None, None, None, 'value_d_dd_5'], [None, None, None, None, 'value_e_ee_5']] data_model = [[d for d in inner] for inner in model.get_pivoted_data(range(6),range(5))] self.assertEqual(data_model, data)
def test_set_pivot_with_frozen2(self): """Test set_pivot with frozen dimension and tuple_index_entries""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types, tuple_index_entries=self.tuple_index_entries) model.set_pivot(['test2'], ['test3'], ['test1'], ('a',)) row_headers = [('aa',), ('bb',), ('cc',)] column_headers = [(1,), (2,), (3,), (4,), (5,), (6,)] self.assertEqual(model._row_data_header, row_headers) self.assertEqual(model._column_data_header, column_headers) self.assertEqual(model._row_data_header_set, set(row_headers)) self.assertEqual(model._column_data_header_set, set(column_headers))
def test_paste_values1(self): """test pasting data into data only""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model.set_pivot(['test1','test2'], ['test3'], [], ()) data = [['paste1', 'paste2', None, None, None], ['paste3', 'paste4', None, None, None], [None, None, 'value_b_cc_3', None, None], [None, None, None, 'value_c_cc_4', None], [None, None, None, None, 'value_d_dd_5'], [None, None, None, None, 'value_e_ee_5']] model.paste_data(data=[['paste1', 'paste2'],['paste3', 'paste4']], row_mask=[0, 1], col_mask=[0, 1]) data_model = [[d for d in inner] for inner in model.get_pivoted_data(range(6),range(5))] self.assertEqual(data_model, data)
def test_edit_index2(self): """edit existing index to new with pivot""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model.set_pivot(['test1','test2'], ['test3'], [], ()) data = self.dict_data data.pop(('a', 'aa', 1)) delete_data = {('a', 'aa', 1): 'value_a_aa_1'} new_data = {('a', 'aa', 8): 'value_a_aa_1'} edit_data = {('a', 'aa', 8): None} model.edit_index([(8,)],[0],'column') self.assertEqual(model._column_data_header[0],(8,)) self.assertEqual(model._data, {**data, **new_data}) self.assertEqual(model._edit_data, edit_data) self.assertEqual(model._deleted_data, delete_data)
def test_set_pivot_with_frozen(self): """Test set_pivot with frozen dimension""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model.set_pivot(['test2'], ['test3'], ['test1'], ('a',)) row_headers = [('aa',), ('bb',)] data = [['value_a_aa_1', None], [None, 'value_a_bb_2']] column_headers = [(1,), (2,)] data_model = [[d for d in inner] for inner in model.get_pivoted_data(range(2),range(2))] self.assertEqual(model._row_data_header, row_headers) self.assertEqual(model._column_data_header, column_headers) self.assertEqual(model._row_data_header_set, set(row_headers)) self.assertEqual(model._column_data_header_set, set(column_headers)) self.assertEqual(data_model, data)
def test_set_pivot(self): """Test set_pivot""" model = PivotModel() model.set_new_data(self.data, self.index_names, self.index_types) model.set_pivot(['test1','test2'], ['test3'], [], ()) row_headers = [('a', 'aa'), ('a', 'bb'), ('b', 'cc'), ('c', 'cc'), ('d', 'dd'), ('e', 'ee')] column_headers = [(1,), (2,), (3,), (4,), (5,)] self.assertEqual(model._row_data_header, row_headers) self.assertEqual(model._column_data_header, column_headers) self.assertEqual(model._row_data_header_set, set(row_headers)) self.assertEqual(model._column_data_header_set, set(column_headers))