@@ -19,3 +19,24 @@ def test_did_summary():
19
19
)
20
20
print (type (result ._causal_impact_summary_stat ()))
21
21
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