1+ import logging
2+
3+ import numpy as np
4+ import pandas as pd
5+ from delphi_utils .weekday import Weekday
6+
7+
8+ class TestWeekday :
9+
10+ TEST_DATA = pd .DataFrame ({
11+ "num" : np .arange (1 , 11 , 1 ),
12+ "den" : np .arange (11 , 21 , 1 ),
13+ "date" : pd .date_range ("2020-01-01" , "2020-01-10" )
14+ })
15+
16+ def test_get_params (self ):
17+ TEST_LOGGER = logging .getLogger ()
18+
19+ result = Weekday .get_params (self .TEST_DATA , "den" , ["num" ], "date" , [1 ], TEST_LOGGER )
20+ print (result )
21+ expected_result = [
22+ - 0.05993665 ,
23+ - 0.0727396 ,
24+ - 0.05618517 ,
25+ 0.0343405 ,
26+ 0.12534997 ,
27+ 0.04561813 ,
28+ - 2.27669028 ,
29+ - 1.89564374 ,
30+ - 1.5695407 ,
31+ - 1.29838116 ,
32+ - 1.08216513 ,
33+ - 0.92089259 ,
34+ - 0.81456355 ,
35+ - 0.76317802 ,
36+ - 0.76673598 ,
37+ - 0.82523745 ,
38+ ]
39+ assert np .allclose (result , expected_result )
40+
41+ def test_calc_adjustment_with_zero_parameters (self ):
42+ params = np .array ([[0 , 0 , 0 , 0 , 0 , 0 , 0 ]])
43+
44+ result = Weekday .calc_adjustment (params , self .TEST_DATA , ["num" ], "date" )
45+
46+ # Data should be unchanged when params are 0's
47+ assert np .allclose (result ["num" ].values , self .TEST_DATA ["num" ].values )
48+ assert np .allclose (result ["den" ].values , self .TEST_DATA ["den" ].values )
49+ assert np .array_equal (result ["date" ].values , self .TEST_DATA ["date" ].values )
50+
51+ def test_calc_adjustment (self ):
52+ params = np .array ([[1 , - 1 , 1 , - 1 , 1 , - 1 , 1 ]])
53+
54+ result = Weekday .calc_adjustment (params , self .TEST_DATA , ["num" ], "date" )
55+
56+ print (result ["num" ].values )
57+ print (result ["den" ].values )
58+ expected_nums = [
59+ 0.36787944 ,
60+ 5.43656366 ,
61+ 1.10363832 ,
62+ 10.87312731 ,
63+ 5 ,
64+ 2.20727665 ,
65+ 19.0279728 ,
66+ 2.94303553 ,
67+ 24.46453646 ,
68+ 3.67879441 ,
69+ ]
70+
71+ # The date and "den" column are unchanged by this function
72+ assert np .allclose (result ["num" ].values , expected_nums )
73+ assert np .allclose (result ["den" ].values , self .TEST_DATA ["den" ].values )
74+ assert np .array_equal (result ["date" ].values , self .TEST_DATA ["date" ].values )
0 commit comments