File tree 4 files changed +221
-1
lines changed
4 files changed +221
-1
lines changed Original file line number Diff line number Diff line change @@ -32,3 +32,5 @@ coverage.xml
32
32
33
33
* metadata /* .json
34
34
* images /* .png
35
+
36
+ .DS_Store
Original file line number Diff line number Diff line change @@ -92,7 +92,9 @@ def validate_config(config: dict) -> bool:
92
92
)
93
93
)
94
94
95
- if sum (layer ["weights" ]) != 100 :
95
+ # ensure the sum of the weights is 100
96
+ # make sure to round the sum to 100 to account for floating point errors
97
+ if round (sum (layer ["weights" ]), 2 ) != 100 :
96
98
raise ConfigValidationError (
97
99
'config["layers"][{}]["{}"]: The sum of the weights must be 100. Current sum: {}' .format (
98
100
i , required_key [0 ], sum (layer ["weights" ])
Original file line number Diff line number Diff line change
1
+ from unittest .mock import patch
2
+
3
+ from src .common .validate import validate_config
4
+
5
+
6
+ @patch ("os.path.isfile" , return_value = True )
7
+ def test_floating_point_errors (mock_isfile ):
8
+ valid_config = {
9
+ "layers" : [
10
+ {
11
+ "name" : "Background" ,
12
+ "values" : [
13
+ "1.4.png" ,
14
+ "1.4.png" ,
15
+ "1.4.png" ,
16
+ "1.4.png" ,
17
+ "2.5.png" ,
18
+ "1.4.png" ,
19
+ "1.7.png" ,
20
+ "9.2.png" ,
21
+ "2.5.png" ,
22
+ "1.4.png" ,
23
+ "0.3.png" ,
24
+ "1.7.png" ,
25
+ "1.7.png" ,
26
+ "1.2.png" ,
27
+ "0.7.png" ,
28
+ "1.4.png" ,
29
+ "0.9.png" ,
30
+ "1.4.png" ,
31
+ "1.7.png" ,
32
+ "0.5.png" ,
33
+ "1.7.png" ,
34
+ "1.4.png" ,
35
+ "0.2.png" ,
36
+ "1.png" ,
37
+ "2.2.png" ,
38
+ "1.7.png" ,
39
+ "1.8.png" ,
40
+ "1.4.png" ,
41
+ "1.7.png" ,
42
+ "1.4.png" ,
43
+ "1.7.png" ,
44
+ "1.4.png" ,
45
+ "1.4.png" ,
46
+ "1.4.png" ,
47
+ "1.4.png" ,
48
+ "1.4.png" ,
49
+ "1.4.png" ,
50
+ "1.4.png" ,
51
+ "1.7.png" ,
52
+ "1.7.png" ,
53
+ "1.8.png" ,
54
+ "1.7.png" ,
55
+ "1.4.png" ,
56
+ "1.4.png" ,
57
+ "1.7.png" ,
58
+ "2.png" ,
59
+ "0.7.png" ,
60
+ "1.8.png" ,
61
+ "0.9.png" ,
62
+ "1.8.png" ,
63
+ "1.4.png" ,
64
+ "1.4.png" ,
65
+ "1.4.png" ,
66
+ "1.7.png" ,
67
+ "1.7.png" ,
68
+ "1.8.png" ,
69
+ "1.7.png" ,
70
+ "1.png" ,
71
+ "1.7.png" ,
72
+ "1.4.png" ,
73
+ "0.9.png" ,
74
+ "1.7.png" ,
75
+ "1.8.png" ,
76
+ ],
77
+ "trait_path" : "./trait-layers/foreground" ,
78
+ "filename" : [
79
+ "1.4.png" ,
80
+ "1.4.png" ,
81
+ "1.4.png" ,
82
+ "1.4.png" ,
83
+ "2.5.png" ,
84
+ "1.4.png" ,
85
+ "1.7.png" ,
86
+ "9.2.png" ,
87
+ "2.5.png" ,
88
+ "1.4.png" ,
89
+ "0.3.png" ,
90
+ "1.7.png" ,
91
+ "1.7.png" ,
92
+ "1.2.png" ,
93
+ "0.7.png" ,
94
+ "1.4.png" ,
95
+ "0.9.png" ,
96
+ "1.4.png" ,
97
+ "1.7.png" ,
98
+ "0.5.png" ,
99
+ "1.7.png" ,
100
+ "1.4.png" ,
101
+ "0.2.png" ,
102
+ "1.png" ,
103
+ "2.2.png" ,
104
+ "1.7.png" ,
105
+ "1.8.png" ,
106
+ "1.4.png" ,
107
+ "1.7.png" ,
108
+ "1.4.png" ,
109
+ "1.7.png" ,
110
+ "1.4.png" ,
111
+ "1.4.png" ,
112
+ "1.4.png" ,
113
+ "1.4.png" ,
114
+ "1.4.png" ,
115
+ "1.4.png" ,
116
+ "1.4.png" ,
117
+ "1.7.png" ,
118
+ "1.7.png" ,
119
+ "1.8.png" ,
120
+ "1.7.png" ,
121
+ "1.4.png" ,
122
+ "1.4.png" ,
123
+ "1.7.png" ,
124
+ "2.png" ,
125
+ "0.7.png" ,
126
+ "1.8.png" ,
127
+ "0.9.png" ,
128
+ "1.8.png" ,
129
+ "1.4.png" ,
130
+ "1.4.png" ,
131
+ "1.4.png" ,
132
+ "1.7.png" ,
133
+ "1.7.png" ,
134
+ "1.8.png" ,
135
+ "1.7.png" ,
136
+ "1.png" ,
137
+ "1.7.png" ,
138
+ "1.4.png" ,
139
+ "0.9.png" ,
140
+ "1.7.png" ,
141
+ "1.8.png" ,
142
+ ],
143
+ "weights" : [
144
+ 1.4 ,
145
+ 1.4 ,
146
+ 1.4 ,
147
+ 1.4 ,
148
+ 2.5 ,
149
+ 1.4 ,
150
+ 1.7 ,
151
+ 9.2 ,
152
+ 2.5 ,
153
+ 1.4 ,
154
+ 0.3 ,
155
+ 1.7 ,
156
+ 1.7 ,
157
+ 1.2 ,
158
+ 0.7 ,
159
+ 1.4 ,
160
+ 0.9 ,
161
+ 1.4 ,
162
+ 1.7 ,
163
+ 0.5 ,
164
+ 1.7 ,
165
+ 1.4 ,
166
+ 0.2 ,
167
+ 1 ,
168
+ 2.2 ,
169
+ 1.7 ,
170
+ 1.8 ,
171
+ 1.4 ,
172
+ 1.7 ,
173
+ 1.4 ,
174
+ 1.7 ,
175
+ 1.4 ,
176
+ 1.4 ,
177
+ 1.4 ,
178
+ 1.4 ,
179
+ 1.4 ,
180
+ 1.4 ,
181
+ 1.4 ,
182
+ 1.7 ,
183
+ 1.7 ,
184
+ 1.8 ,
185
+ 1.7 ,
186
+ 1.4 ,
187
+ 1.4 ,
188
+ 1.7 ,
189
+ 2 ,
190
+ 0.7 ,
191
+ 1.8 ,
192
+ 0.9 ,
193
+ 1.8 ,
194
+ 1.4 ,
195
+ 1.4 ,
196
+ 1.4 ,
197
+ 1.7 ,
198
+ 1.7 ,
199
+ 1.8 ,
200
+ 1.7 ,
201
+ 1 ,
202
+ 1.7 ,
203
+ 1.4 ,
204
+ 0.9 ,
205
+ 1.7 ,
206
+ 1.8 ,
207
+ ],
208
+ }
209
+ ],
210
+ "incompatibilities" : [],
211
+ "baseURI" : "." ,
212
+ "name" : "NFT #" ,
213
+ "description" : "This is a description for this NFT series." ,
214
+ }
215
+
216
+ assert validate_config (valid_config ) is None # It should not raise an exception
You can’t perform that action at this time.
0 commit comments