1+ from codonPython .check_consistent_measures import check_consistent_measures
2+ import pandas as pd
3+ import pytest
4+
5+ @pytest .mark .parametrize ("data, geography_col, measure_col, measures_set, expected" , [
6+ (
7+ pd .DataFrame ({
8+ "Geog" : ["National" ,"National" , "Region" , "Region" , "Local" , "Local" ],
9+ "measure" : ["m1" , "m2" , "m1" , "m2" , "m1" , "m2" ],
10+ "Value_Unsuppressed" : [4 , 2 , 2 , 1 , 2 , 1 ],
11+ }),
12+ "Geog" ,
13+ "measure" ,
14+ set ({"m1" , "m2" }),
15+ True
16+ ),
17+ (
18+ pd .DataFrame ({
19+ "Geog" : ["National" ,"National" , "Region" , "Region" , "Local" , "Local" ],
20+ "measure" : ["m1" , "m2" , "m1" , "m3" , "m1" , "m2" ],
21+ "Value_Unsuppressed" : [4 , 2 , 2 , 1 , 2 , 1 ],
22+ }),
23+ "Geog" ,
24+ "measure" ,
25+ set ({"m1" , "m2" }),
26+ False
27+ )
28+ ])
29+
30+ def test_each_org_levels_BAU (data , geography_col , measure_col , measures_set , expected ):
31+ assert expected == check_consistent_measures (data , geography_col , measure_col , measures_set )
32+
33+ @pytest .mark .parametrize ("data, geography_col, measure_col, measures_set" , [
34+ (
35+ pd .DataFrame ({
36+ "Geog" : ["National" ,"National" , 1 , "Region" , "Local" , "Local" ],
37+ "measure" : ["m1" , "m2" , "m1" , "m2" , "m1" , "m2" ],
38+ "Value_Unsuppressed" : [4 , 2 , 2 , 1 , 2 , 1 ],
39+ }),
40+ "Geog" ,
41+ "measure" ,
42+ set ({"m1" , "m2" }),
43+ )
44+ ])
45+
46+ def test_each_org_levels_valueErrors (data , geography_col , measure_col , measures_set ):
47+ with pytest .raises (ValueError ):
48+ check_consistent_measures (data , geography_col , measure_col , measures_set )
49+
50+ @pytest .mark .parametrize ("data, geography_col, measure_col, measures_set" , [
51+ (
52+ pd .DataFrame ({
53+ "Geog" : ["National" ,"National" , "Region" , "Region" , "Local" , "Local" ],
54+ "measure" : ["m1" , "m2" , "m1" , True , "m1" , "m2" ],
55+ "Value_Unsuppressed" : [4 , 2 , 2 , 1 , 2 , 1 ],
56+ }),
57+ "Geog" ,
58+ "measure" ,
59+ set ({"m1" , "m2" }),
60+ )
61+ ])
62+
63+
64+ def test_each_org_levels_valueErrors_measure_col (data , geography_col , measure_col , measures_set ):
65+ with pytest .raises (ValueError ):
66+ check_consistent_measures (data , geography_col , measure_col , measures_set )
67+
68+ @pytest .mark .parametrize ("data, geography_col, measure_col, measures_set" , [
69+ (
70+ pd .DataFrame ({
71+ "Geog" : ["National" ,"National" , "Region" , "Region" , "Local" , "Local" ],
72+ "measure" : ["m1" , "m2" , "m1" , "m2" , "m1" , "m2" ],
73+ "Value_Unsuppressed" : [4 , 2 , 2 , 1 , 2 , 1 ],
74+ }),
75+ "Global" ,
76+ "measure" ,
77+ set ({"m1" , "m2" }),
78+ )
79+ ])
80+
81+ def test_each_geography_col_keyError (data , geography_col , measure_col , measures_set ):
82+ with pytest .raises (KeyError ):
83+ check_consistent_measures (data , geography_col , measure_col , measures_set )
0 commit comments