@@ -107,6 +107,33 @@ class Color(
107
107
self .assertEqual (Color .RED , Color ('RED' ))
108
108
self .assertEqual (Color .RED , Color ['RED' ])
109
109
self .assertEqual (Color .RED , Color (1 ))
110
+
111
+ # test symmetric equality
112
+ self .assertEqual (Color .RED , (1 , 0 , 0 ))
113
+ self .assertEqual (Color .RED , 'ff0000' )
114
+ self .assertEqual (Color .RED , 'FF0000' )
115
+ self .assertEqual (Color .RED , 'RED' )
116
+ self .assertEqual (Color .RED , 1 )
117
+
118
+ self .assertTrue (Color .RED != (1 , 1 , 0 ))
119
+ self .assertTrue (Color .RED != '00ff00' )
120
+ self .assertTrue (Color .RED != 'EE0000' )
121
+ self .assertTrue (Color .RED != 'GRAY' )
122
+ self .assertTrue (Color .RED != 3 )
123
+
124
+ self .assertFalse (Color .RED != (1 , 0 , 0 ))
125
+ self .assertFalse (Color .RED != 'ff0000' )
126
+ self .assertFalse (Color .RED != 'FF0000' )
127
+ self .assertFalse (Color .RED != 'RED' )
128
+ self .assertFalse (Color .RED != 1 )
129
+
130
+ self .assertNotEqual (Color .RED , (1 , 1 , 0 ))
131
+ self .assertNotEqual (Color .RED , 'EE0000' )
132
+ self .assertNotEqual (Color .RED , '00ff00' )
133
+ self .assertNotEqual (Color .RED , 'GREEN' )
134
+ self .assertNotEqual (Color .RED , 5 )
135
+ ############################
136
+
110
137
self .assertEqual (Color .RED .value , 1 )
111
138
self .assertEqual (Color .RED .spanish , 'Roja' )
112
139
self .assertEqual (Color .RED .hex , 'ff0000' )
@@ -125,6 +152,13 @@ class Color(
125
152
self .assertRaises (ValueError , Color , 'Verde' )
126
153
self .assertRaises (ValueError , Color , 'Green' )
127
154
155
+ # test symmetric equality
156
+ self .assertEqual (Color .GREEN , (0 , 1 , 0 ))
157
+ self .assertEqual (Color .GREEN , '00ff00' )
158
+ self .assertEqual (Color .GREEN , '00FF00' )
159
+ self .assertEqual (Color .GREEN , 'GREEN' )
160
+ self .assertEqual (Color .GREEN , 2 )
161
+ self .assertNotEqual (Color .GREEN , (1 , 1 , 0 ))
128
162
129
163
self .assertEqual (Color .BLUE , Color ((0 , 0 , 1 )))
130
164
self .assertEqual (Color .BLUE , Color ('0000ff' ))
@@ -133,10 +167,20 @@ class Color(
133
167
self .assertEqual (Color .BLUE , Color ['BLUE' ])
134
168
self .assertEqual (Color .BLUE , Color (3 ))
135
169
self .assertEqual (Color .BLUE .value , 3 )
170
+ self .assertEqual (Color .BLUE , 3 )
136
171
self .assertEqual (Color .BLUE .spanish , 'Azul' )
137
172
self .assertEqual (Color .BLUE .hex , '0000ff' )
138
173
self .assertRaises (ValueError , Color , 'Azul' )
139
174
self .assertRaises (ValueError , Color , 'Blue' )
175
+
176
+ # test symmetric equality
177
+ self .assertEqual (Color .BLUE , (0 , 0 , 1 ))
178
+ self .assertEqual (Color .BLUE , '0000ff' )
179
+ self .assertEqual (Color .BLUE , '0000FF' )
180
+ self .assertEqual (Color .BLUE , 'BLUE' )
181
+ self .assertEqual (Color .BLUE , 3 )
182
+ self .assertNotEqual (Color .BLUE , '00EE00' )
183
+
140
184
else : # pragma: no cover
141
185
def test_properties_and_symmetry (self ):
142
186
@@ -162,6 +206,32 @@ class Color(
162
206
self .assertRaises (ValueError , Color , 'Roja' )
163
207
self .assertRaises (ValueError , Color , 'Red' )
164
208
209
+ # test symmetric equality
210
+ self .assertEqual (Color .RED , (1 , 0 , 0 ))
211
+ self .assertEqual (Color .RED , 'ff0000' )
212
+ self .assertEqual (Color .RED , 'FF0000' )
213
+ self .assertEqual (Color .RED , 'RED' )
214
+ self .assertEqual (Color .RED , 1 )
215
+
216
+ self .assertTrue (Color .RED != (1 , 1 , 0 ))
217
+ self .assertTrue (Color .RED != '00ff00' )
218
+ self .assertTrue (Color .RED != 'EE0000' )
219
+ self .assertTrue (Color .RED != 'GRAY' )
220
+ self .assertTrue (Color .RED != 3 )
221
+
222
+ self .assertFalse (Color .RED != (1 , 0 , 0 ))
223
+ self .assertFalse (Color .RED != 'ff0000' )
224
+ self .assertFalse (Color .RED != 'FF0000' )
225
+ self .assertFalse (Color .RED != 'RED' )
226
+ self .assertFalse (Color .RED != 1 )
227
+
228
+ self .assertNotEqual (Color .RED , (1 , 1 , 0 ))
229
+ self .assertNotEqual (Color .RED , 'EE0000' )
230
+ self .assertNotEqual (Color .RED , '00ff00' )
231
+ self .assertNotEqual (Color .RED , 'GREEN' )
232
+ self .assertNotEqual (Color .RED , 5 )
233
+ ############################
234
+
165
235
self .assertEqual (Color .GREEN , Color ((0 , 1 , 0 )))
166
236
self .assertEqual (Color .GREEN , Color ('00ff00' ))
167
237
self .assertEqual (Color .GREEN , Color ('00FF00' ))
@@ -174,6 +244,14 @@ class Color(
174
244
self .assertRaises (ValueError , Color , 'Verde' )
175
245
self .assertRaises (ValueError , Color , 'Green' )
176
246
247
+ # test symmetric equality
248
+ self .assertEqual (Color .GREEN , (0 , 1 , 0 ))
249
+ self .assertEqual (Color .GREEN , '00ff00' )
250
+ self .assertEqual (Color .GREEN , '00FF00' )
251
+ self .assertEqual (Color .GREEN , 'GREEN' )
252
+ self .assertEqual (Color .GREEN , 2 )
253
+ self .assertNotEqual (Color .GREEN , 'EE0000' )
254
+
177
255
self .assertEqual (Color .BLUE , Color ((0 , 0 , 1 )))
178
256
self .assertEqual (Color .BLUE , Color ('0000ff' ))
179
257
self .assertEqual (Color .BLUE , Color ('0000FF' ))
@@ -186,6 +264,14 @@ class Color(
186
264
self .assertRaises (ValueError , Color , 'Azul' )
187
265
self .assertRaises (ValueError , Color , 'Blue' )
188
266
267
+ # test symmetric equality
268
+ self .assertEqual (Color .BLUE , (0 , 0 , 1 ))
269
+ self .assertEqual (Color .BLUE , '0000ff' )
270
+ self .assertEqual (Color .BLUE , '0000FF' )
271
+ self .assertEqual (Color .BLUE , 'BLUE' )
272
+ self .assertEqual (Color .BLUE , 3 )
273
+ self .assertNotEqual (Color .BLUE , (0 , 1 , 1 ))
274
+
189
275
def test_property_lists (self ):
190
276
191
277
class Color (
@@ -598,19 +684,27 @@ class Color(EnumProperties, p('rgb'), p('hex')):
598
684
self .assertEqual (Color .GREEN .hex , '00ff00' )
599
685
self .assertEqual (Color .BLUE .hex , '0000ff' )
600
686
601
- class Color (EnumProperties , s ('rgb' ), s ('hex' )):
687
+ class Color (EnumProperties , s ('rgb' ), s ('hex' , case_fold = True )):
602
688
603
- RED = auto (), (1 , 0 , 0 ), 'ff0000 '
604
- GREEN = auto (), (0 , 1 , 0 ), '00ff00 '
605
- BLUE = auto (), (0 , 0 , 1 ), '0000ff '
689
+ RED = auto (), (1 , 0 , 0 ), '0xff0000 '
690
+ GREEN = auto (), (0 , 1 , 0 ), '0x00ff00 '
691
+ BLUE = auto (), (0 , 0 , 1 ), '0x0000ff '
606
692
607
693
self .assertEqual (Color .RED , Color ((1 , 0 , 0 )))
608
694
self .assertEqual (Color .GREEN , Color ((0 , 1 , 0 )))
609
695
self .assertEqual (Color .BLUE , Color ((0 , 0 , 1 )))
610
696
611
- self .assertEqual (Color .RED , Color ('ff0000' ))
612
- self .assertEqual (Color .GREEN , Color ('00ff00' ))
613
- self .assertEqual (Color .BLUE , Color ('0000ff' ))
697
+ self .assertEqual (Color .RED , Color ('0xff0000' ))
698
+ self .assertEqual (Color .GREEN , Color ('0x00ff00' ))
699
+ self .assertEqual (Color .BLUE , Color ('0x0000ff' ))
700
+
701
+ self .assertTrue (Color .RED == Color (hex (16711680 )) == hex (16711680 ) == '0xff0000' == Color .RED )
702
+ self .assertTrue (Color .RED == (1 , 0 , 0 ))
703
+ self .assertTrue ((1 , 0 , 0 ) == Color .RED )
704
+ self .assertTrue (Color .RED != (0 , 1 , 0 ))
705
+ self .assertTrue ((0 , 1 , 0 ) != Color .RED )
706
+ self .assertTrue (Color .RED == '0xFF0000' )
707
+ self .assertTrue ('0xFF0000' == Color .RED )
614
708
615
709
class MapBoxStyle (
616
710
EnumProperties ,
0 commit comments