def test_cellset_and_pandas_df(self): rows = {self.dim1_name: None, self.dim2_name: self.dim2_element_names} columns = { self.dim3_name: "{{TM1SubsetAll([{}])}}".format(self.dim3_name) } contexts = {self.dim4_name: self.dim4_element_names[0]} suppress = None mdx = MDXUtils.construct_mdx(cube_name=self.cube_name, rows=rows, columns=columns, contexts=contexts, suppress=suppress) cellset = self.tm1.cubes.cells.execute_mdx(mdx) df = Utils.build_pandas_dataframe_from_cellset(cellset, multiindex=True) self.assertIsInstance(df, pd.DataFrame) self.assertTrue(df.shape[0] == 1000) self.assertTrue(df.shape[1] == 1) cellset = Utils.build_cellset_from_pandas_dataframe(df) self.assertTrue(len(cellset.keys()) == 1000) self.assertIsInstance(cellset, Utils.CaseAndSpaceInsensitiveTuplesDict) df = Utils.build_pandas_dataframe_from_cellset(cellset, multiindex=False) self.assertTrue(df.shape[0] == 1000) self.assertTrue(df.shape[1] == 5) self.assertIsInstance(df, pd.DataFrame) cellset = Utils.build_cellset_from_pandas_dataframe(df) self.assertTrue(len(cellset.keys()) == 1000) self.assertIsInstance(cellset, Utils.CaseAndSpaceInsensitiveTuplesDict)
def test_build_pandas_dataframe_from_cellset(self): rows = [ DimensionSelection(dimension_name=self.dim1_name), DimensionSelection(dimension_name=self.dim2_name, elements=self.dim2_element_names) ] columns = [ DimensionSelection(dimension_name=self.dim3_name, expression="TM1SubsetAll([{}])".format( self.dim3_name)), DimensionSelection(dimension_name=self.dim4_name, subset=self.dim4_subset_Name) ] suppress = None mdx = MDXUtils.construct_mdx(cube_name=self.cube_name, rows=rows, columns=columns, suppress=suppress) cellset = self.tm1.cubes.cells.execute_mdx(mdx) df = Utils.build_pandas_dataframe_from_cellset(cellset, multiindex=False) self.assertTrue(df.shape[0] == 1000) # cater for potential Sandboxes dimension on first position if df.columns[0] == "Sandboxes": self.assertTrue(df.shape[1] == 6) else: self.assertTrue(df.shape[1] == 5) self.assertIsInstance(df, pd.DataFrame) cellset = Utils.build_cellset_from_pandas_dataframe(df) self.assertTrue(len(cellset.keys()) == 1000) self.assertIsInstance(cellset, Utils.CaseAndSpaceInsensitiveTuplesDict)