64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
import os
|
|
import sys
|
|
import unittest
|
|
import pandas as pd
|
|
import pandas.api.types as ptypes
|
|
|
|
PROJECT_ROOT = os.path.realpath(os.path.join(os.path.dirname(__file__), "..", ".."))
|
|
MODULE_ROOT = os.path.join(PROJECT_ROOT, "modules")
|
|
sys.path.append(MODULE_ROOT)
|
|
print(MODULE_ROOT)
|
|
|
|
from pandas_wrapper.pandas_strftime import PandasStrftime
|
|
|
|
class Test(unittest.TestCase):
|
|
def setUp(self):
|
|
"""Set up test data"""
|
|
self.node = PandasStrftime()
|
|
|
|
self.pd_date = pd.DataFrame({
|
|
"A": [pd.Timestamp("2015-01-23"), pd.Timestamp("2013-06-30")],
|
|
"B": [pd.Timestamp("2005-02-24"), pd.Timestamp("2015-09-06")],
|
|
"C": [123.45, 987.65],
|
|
})
|
|
|
|
self.pd_date_time = pd.DataFrame({
|
|
"A": [pd.Timestamp("2015-01-23 00:12:34"), pd.Timestamp("2013-06-30 12:50:59")],
|
|
"B": [123.45, 987.65],
|
|
})
|
|
|
|
self.pd_time = pd.DataFrame({
|
|
"A": [pd.Timestamp("1900-01-01 00:12:34"), pd.Timestamp("1900-01-01 12:50:59")],
|
|
"B": [123.45, 987.65],
|
|
})
|
|
|
|
def test_date(self):
|
|
"""Test date formatting"""
|
|
df2 = self.node.f(self.pd_date, column_names="A,B", date_format="%Y-%m-%d")[0]
|
|
self.assertTrue(ptypes.is_string_dtype(df2["A"]))
|
|
self.assertTrue(ptypes.is_string_dtype(df2["B"]))
|
|
self.assertEqual(df2.at[0, "A"], "2015-01-23")
|
|
self.assertEqual(df2.at[1, "B"], "2015-09-06")
|
|
self.assertEqual(df2.at[0, "C"], 123.45) # Ensure non-date columns are unchanged
|
|
|
|
def test_date_time(self):
|
|
"""Test datetime formatting"""
|
|
df3 = self.node.f(self.pd_date_time, column_names="A", date_format="%Y-%m-%d %H:%M:%S")[0]
|
|
self.assertTrue(ptypes.is_string_dtype(df3["A"]))
|
|
self.assertTrue(ptypes.is_float_dtype(df3["B"]))
|
|
self.assertEqual(df3.at[0, "A"], "2015-01-23 00:12:34")
|
|
self.assertEqual(df3.at[1, "A"], "2013-06-30 12:50:59")
|
|
self.assertEqual(df3.at[0, "B"], 123.45)
|
|
|
|
def test_time(self):
|
|
"""Test time formatting"""
|
|
df4 = self.node.f(self.pd_time, column_names="A", date_format="%H:%M:%S")[0]
|
|
self.assertTrue(ptypes.is_string_dtype(df4["A"]))
|
|
self.assertEqual(df4.at[0, "A"], "00:12:34")
|
|
self.assertEqual(df4.at[1, "A"], "12:50:59")
|
|
self.assertEqual(df4.at[0, "B"], 123.45)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|