TestFlattenData.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import unittest
  2. import sys
  3. import os
  4. import pandas as pd
  5. from pprint import pprint
  6. sys.path.append(os.getcwd())
  7. from cdplib.log import Log
  8. from cdplib.FlattenData import FlattenData
  9. class TestFlattenData(unittest.TestCase):
  10. def setUp(self):
  11. self.flattener = FlattenData()
  12. def test_A_flatten(self):
  13. '''
  14. Create some nested test data, in the formats: dict, list and dataframe
  15. Flatten the test data
  16. Compare the results
  17. '''
  18. nested_data_dict = {
  19. "one_level": "test_level_1",
  20. "two_levels": {
  21. "one_level": "test_level_2"
  22. },
  23. "three_levels": {
  24. "two_levels": {
  25. "one_level": "test_level_3"
  26. }
  27. }
  28. }
  29. nested_data_list = [nested_data_dict, nested_data_dict]
  30. nested_data_df = pd.DataFrame.from_dict([nested_data_dict])
  31. flattened_dict = self.flattener.flatten(nested_data_dict)
  32. flattened_list = self.flattener.flatten(nested_data_list)
  33. flattened_df = self.flattener.flatten(nested_data_df['two_levels'])
  34. self.assertEqual(nested_data_dict["two_levels"]["one_level"], flattened_dict.loc['two_levels_one_level', 0])
  35. self.assertEqual(nested_data_dict["two_levels"]["one_level"], flattened_list.loc['0_two_levels_one_level', 0])
  36. self.assertEqual(nested_data_dict["two_levels"]["one_level"], flattened_df.loc[0 , 'two_levels_one_level'])
  37. if __name__ == '__main__':
  38. unittest.main()