1+ from codonPython .check_nat_val import check_nat_val
2+ import pytest
3+ import pandas as pd
4+
5+
6+ df = pd .DataFrame ({
7+ "Breakdown" : [
8+ 'National' , 'CCG' , 'CCG' , 'Provider' , 'Provider' ,
9+ 'National' ,'CCG' , 'CCG' , 'Provider' , 'Provider' ,
10+ 'National' ,'CCG' , 'CCG' , 'Provider' , 'Provider' ,
11+ ],
12+ "measure" : [
13+ 'm1' , 'm1' , 'm1' , 'm1' , 'm1' ,
14+ 'm2' , 'm2' , 'm2' , 'm2' , 'm2' ,
15+ 'm3' , 'm3' , 'm3' , 'm3' , 'm3' ,
16+ ],
17+ "Value_Unsuppressed" : [
18+ 9 , 4 , 5 , 3 , 6 ,
19+ 11 , 2 , 9 , 7 , 4 ,
20+ 9 , 5 , 4 , 6 , 3
21+ ],
22+ })
23+
24+ @pytest .mark .parametrize ("df, breakdown_col, measure_col, value_col, nat_val, expected" , [
25+ (
26+ df ,
27+ "Breakdown" ,
28+ "measure" ,
29+ "Value_Unsuppressed" ,
30+ "National" ,
31+ True
32+ ),
33+ ])
34+ def test_BAU (df , breakdown_col , measure_col , value_col , nat_val , expected ):
35+ assert check_nat_val (
36+ df ,
37+ breakdown_col = breakdown_col ,
38+ measure_col = measure_col ,
39+ value_col = value_col ,
40+ nat_val = nat_val ,
41+ ) == expected
42+
43+
44+ @pytest .mark .parametrize ("df, breakdown_col, measure_col, value_col, nat_val" , [
45+ (
46+ df ,
47+ "Breakdown" ,
48+ 23 , # Not a string
49+ "Value_Unsuppressed" ,
50+ "National" ,
51+ ),
52+ (
53+ df ,
54+ 0.1 , # Not a string
55+ "Measure" ,
56+ "Value_Unsuppressed" ,
57+ "National" ,
58+ ),
59+ (
60+ df ,
61+ "Breakdown" ,
62+ "Measure" ,
63+ pd .DataFrame ({"wrong" : [1 , 2 , 3 ]}), # Not a string
64+ "National" ,
65+ ),
66+ (
67+ df ,
68+ "Breakdown" ,
69+ "Measure" ,
70+ "Value_Unsuppressed" ,
71+ set ({"m1" , "m2" }), # Not a string
72+ ),
73+ ])
74+ def test_ValueErrors (df , breakdown_col , measure_col , value_col , nat_val ):
75+ with pytest .raises (ValueError ):
76+ check_nat_val (
77+ df ,
78+ breakdown_col = breakdown_col ,
79+ measure_col = measure_col ,
80+ value_col = value_col ,
81+ nat_val = nat_val ,
82+ )
83+
84+
85+ @pytest .mark .parametrize ("df, breakdown_col, measure_col, value_col, nat_val" , [
86+ (
87+ df ,
88+ "Breakdown" ,
89+ "measure" ,
90+ "Wrong_Column" ,
91+ "National" ,
92+ )
93+ ])
94+ def test_KeyErrors (df , breakdown_col , measure_col , value_col , nat_val ):
95+ with pytest .raises (KeyError ):
96+ check_nat_val (
97+ df ,
98+ breakdown_col = breakdown_col ,
99+ measure_col = measure_col ,
100+ value_col = value_col ,
101+ nat_val = nat_val ,
102+ )
0 commit comments