Пример #1
0
 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, [])
Пример #2
0
 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)])
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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))
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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)
Пример #9
0
 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))