@@ -19,3 +19,24 @@ def test_did_summary():
1919 )
2020 print (type (result ._causal_impact_summary_stat ()))
2121 assert isinstance (result ._causal_impact_summary_stat (), str )
22+
23+
24+ def test_regression_kink_gradient_change ():
25+ """Test function to numerically calculate the change in gradient around the kink
26+ point in regression kink designs"""
27+ # test no change in gradient
28+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (- 1 , 0 , 1 , 1 ) == 0.0
29+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (1 , 0 , - 1 , 1 ) == 0.0
30+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (0 , 0 , 0 , 1 ) == 0.0
31+ # test positive change in gradient
32+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (0 , 0 , 1 , 1 ) == 1.0
33+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (0 , 0 , 2 , 1 ) == 2.0
34+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (- 1 , - 1 , 2 , 1 ) == 3.0
35+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (- 1 , 0 , 2 , 1 ) == 1.0
36+ # test negative change in gradient
37+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (0 , 0 , - 1 , 1 ) == - 1.0
38+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (0 , 0 , - 2 , 1 ) == - 2.0
39+ assert (
40+ cp .pymc_experiments .RegressionKink ._eval_gradient_change (- 1 , - 1 , - 2 , 1 ) == - 1.0
41+ )
42+ assert cp .pymc_experiments .RegressionKink ._eval_gradient_change (1 , 0 , - 2 , 1 ) == - 1.0
0 commit comments