aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/data/color/named.lux
blob: ce4f22fc348c6d027f1564caa0596a67208413c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
(.using
 [library
  [lux "*"
   ["_" test {"+" Test}]
   [abstract
    [monad {"+" do}]]
   [data
    [collection
     ["[0]" list]
     ["[0]" set]]]
   [macro
    ["[0]" template]]
   [math
    ["[0]" random {"+" Random}]
    [number
     ["n" nat]]]]]
 [\\library
  ["[0]" /
   ["/[1]" //]]])

(with_expansions [<colors> (these [letter/a
                                   [/.alice_blue
                                    /.antique_white
                                    ... /.aqua
                                    /.aquamarine
                                    /.azure]]
                                  
                                  [letter/b
                                   [/.beige
                                    /.bisque
                                    /.black
                                    /.blanched_almond
                                    /.blue
                                    /.blue_violet
                                    /.brown
                                    /.burly_wood]]
                                  
                                  [letter/c
                                   [/.cadet_blue
                                    /.chartreuse
                                    /.chocolate
                                    /.coral
                                    /.cornflower_blue
                                    /.cornsilk
                                    /.crimson
                                    /.cyan]]
                                  
                                  [letter/d
                                   [/.dark_blue
                                    /.dark_cyan
                                    /.dark_goldenrod
                                    /.dark_gray
                                    /.dark_green
                                    /.dark_khaki
                                    /.dark_magenta
                                    /.dark_olive_green
                                    /.dark_orange
                                    /.dark_orchid
                                    /.dark_red
                                    /.dark_salmon
                                    /.dark_sea_green
                                    /.dark_slate_blue
                                    /.dark_slate_gray
                                    /.dark_turquoise
                                    /.dark_violet
                                    /.deep_pink
                                    /.deep_sky_blue
                                    /.dim_gray
                                    /.dodger_blue]]
                                  
                                  [letter/f
                                   [/.fire_brick
                                    /.floral_white
                                    /.forest_green
                                    ... /.fuchsia
                                    ]]
                                  
                                  [letter/g
                                   [/.gainsboro
                                    /.ghost_white
                                    /.gold
                                    /.goldenrod
                                    /.gray
                                    /.green
                                    /.green_yellow]]
                                  
                                  [letter/h
                                   [/.honey_dew
                                    /.hot_pink]]
                                  
                                  [letter/i
                                   [/.indian_red
                                    /.indigo
                                    /.ivory]]
                                  
                                  [letter/k
                                   [/.khaki]]
                                  
                                  [letter/l
                                   [/.lavender
                                    /.lavender_blush
                                    /.lawn_green
                                    /.lemon_chiffon
                                    /.light_blue
                                    /.light_coral
                                    /.light_cyan
                                    /.light_goldenrod_yellow
                                    /.light_gray
                                    /.light_green
                                    /.light_pink
                                    /.light_salmon
                                    /.light_sea_green
                                    /.light_sky_blue
                                    /.light_slate_gray
                                    /.light_steel_blue
                                    /.light_yellow
                                    /.lime
                                    /.lime_green
                                    /.linen]]
                                  
                                  [letter/m
                                   [/.magenta
                                    /.maroon
                                    /.medium_aquamarine
                                    /.medium_blue
                                    /.medium_orchid
                                    /.medium_purple
                                    /.medium_sea_green
                                    /.medium_slate_blue
                                    /.medium_spring_green
                                    /.medium_turquoise
                                    /.medium_violet_red
                                    /.midnight_blue
                                    /.mint_cream
                                    /.misty_rose
                                    /.moccasin]]
                                  
                                  [letter/n
                                   [/.navajo_white
                                    /.navy]]
                                  
                                  [letter/o
                                   [/.old_lace
                                    /.olive
                                    /.olive_drab
                                    /.orange
                                    /.orange_red
                                    /.orchid]]
                                  
                                  [letter/p
                                   [/.pale_goldenrod
                                    /.pale_green
                                    /.pale_turquoise
                                    /.pale_violet_red
                                    /.papaya_whip
                                    /.peach_puff
                                    /.peru
                                    /.pink
                                    /.plum
                                    /.powder_blue
                                    /.purple]]
                                  
                                  [letter/r
                                   [/.rebecca_purple
                                    /.red
                                    /.rosy_brown
                                    /.royal_blue]]
                                  
                                  [letter/s
                                   [/.saddle_brown
                                    /.salmon
                                    /.sandy_brown
                                    /.sea_green
                                    /.sea_shell
                                    /.sienna
                                    /.silver
                                    /.sky_blue
                                    /.slate_blue
                                    /.slate_gray
                                    /.snow
                                    /.spring_green
                                    /.steel_blue]]
                                  
                                  [letter/t
                                   [/.tan
                                    /.teal
                                    /.thistle
                                    /.tomato
                                    /.turquoise]]
                                  
                                  [letter/v
                                   [/.violet]]
                                  
                                  [letter/w
                                   [/.wheat
                                    /.white
                                    /.white_smoke]]
                                  
                                  [letter/y
                                   [/.yellow
                                    /.yellow_green]]
                                  )]
  (def: all_colors
    (list.together (`` (list (~~ (template [<definition> <by_letter>]
                                   [((is (-> Any (List //.Color))
                                         (function (_ _)
                                           (`` (list (~~ (template.spliced <by_letter>))))))
                                     123)]
                                   
                                   <colors>))))))
  
  (def: unique_colors
    (set.of_list //.hash ..all_colors))

  (def: verdict
    (n.= (list.size ..all_colors)
         (set.size ..unique_colors)))

  (template [<definition> <by_letter>]
    [(def: <definition>
       Test
       (_.cover <by_letter>
                ..verdict))]
    
    <colors>)

  (def: .public test
    Test
    (<| (_.covering /._)
        (`` (all _.and
                 (~~ (template [<definition> <by_letter>]
                       [<definition>]
                       
                       <colors>))
                 (_.cover [/.aqua]
                          (# //.equivalence = /.cyan /.aqua))
                 (_.cover [/.fuchsia]
                          (# //.equivalence = /.magenta /.fuchsia))
                 ))))
  )