@@ -30,30 +30,37 @@ def check_t_rule(register, night_value, day_value):
30
30
}
31
31
32
32
LIGHT_RULES_MAP = {
33
- 1 : (is_in_range , (200 , 350 )),
33
+ 1 : (is_in_range , (350 , 500 )),
34
34
2 : (is_in_range , (200 , 350 )),
35
35
3 : (is_in_range , (75 , 200 )),
36
36
4 : (is_in_range , (25 , 75 )),
37
37
}
38
38
39
+ WATERING_RULES_MAP = {
40
+ 1 : (is_in_range , (70 , 100 )),
41
+ 2 : (is_in_range , (40 , 70 )),
42
+ 3 : (is_in_range , (10 , 40 )),
43
+ }
44
+
39
45
40
46
def parse_values (string ):
41
47
values = string .split ('-' )
42
48
return [int (value ) for value in values ]
43
49
44
50
45
- # asumimos register: nombre_planta, humedad, luz, temperatura
46
51
def apply_rules (register , plant_name ):
47
52
plant_data = df [df ['Botanical_Name' ] == plant_name ]
48
53
h_value = plant_data ['H' ].values [0 ]
49
54
l_value = plant_data ['L' ].values [0 ]
50
55
t_value = plant_data ['T' ].values [0 ]
56
+ w_value = plant_data ['W' ].values [0 ]
51
57
52
58
parameters = []
53
59
54
60
t_values = parse_values (t_value )
55
61
h_values = parse_values (h_value )
56
62
l_values = parse_values (l_value )
63
+ w_values = parse_values (w_value )
57
64
58
65
is_temperature_deviated = all (
59
66
not apply_temperature_rule (t_value , register .temperature )
@@ -62,6 +69,13 @@ def apply_rules(register, plant_name):
62
69
if is_temperature_deviated :
63
70
parameters .append ('temperature' )
64
71
72
+ is_watering_deviated = all (
73
+ not apply_watering_rule (w_value , register .watering )
74
+ for w_value in w_values
75
+ )
76
+ if is_watering_deviated :
77
+ parameters .append ('watering' )
78
+
65
79
is_light_deviated = all (
66
80
not apply_light_rule (l_value , register .light )
67
81
for l_value in l_values
@@ -84,6 +98,11 @@ def apply_temperature_rule(rule, register):
84
98
return rule_function (register , * rule_values )
85
99
86
100
101
+ def apply_watering_rule (rule , register ):
102
+ rule_function , rule_values = WATERING_RULES_MAP .get (rule , None )
103
+ return rule_function (register , * rule_values )
104
+
105
+
87
106
def apply_light_rule (rule , register ):
88
107
rule_function , rule_values = LIGHT_RULES_MAP .get (rule , None )
89
108
return rule_function (register , * rule_values )
0 commit comments