TestFlattenData.py 1.5 KB

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