sassc 1.11.1 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/README.md +3 -2
  4. data/ext/libsass/Makefile.conf +2 -1
  5. data/ext/libsass/appveyor.yml +10 -5
  6. data/ext/libsass/docs/dev-ast-memory.md +223 -0
  7. data/ext/libsass/include/sass/base.h +2 -0
  8. data/ext/libsass/script/bootstrap +7 -4
  9. data/ext/libsass/script/ci-build-libsass +3 -3
  10. data/ext/libsass/script/ci-install-compiler +2 -0
  11. data/ext/libsass/script/ci-report-coverage +2 -1
  12. data/ext/libsass/script/test-leaks.pl +103 -0
  13. data/ext/libsass/src/ast.cpp +621 -495
  14. data/ext/libsass/src/ast.hpp +801 -367
  15. data/ext/libsass/src/ast_def_macros.hpp +5 -5
  16. data/ext/libsass/src/ast_fwd_decl.hpp +312 -14
  17. data/ext/libsass/src/bind.cpp +54 -51
  18. data/ext/libsass/src/bind.hpp +3 -7
  19. data/ext/libsass/src/check_nesting.cpp +117 -120
  20. data/ext/libsass/src/check_nesting.hpp +38 -34
  21. data/ext/libsass/src/color_maps.cpp +3 -3
  22. data/ext/libsass/src/color_maps.hpp +3 -3
  23. data/ext/libsass/src/context.cpp +33 -34
  24. data/ext/libsass/src/context.hpp +12 -14
  25. data/ext/libsass/src/cssize.cpp +200 -228
  26. data/ext/libsass/src/cssize.hpp +49 -49
  27. data/ext/libsass/src/debugger.hpp +260 -241
  28. data/ext/libsass/src/emitter.cpp +6 -6
  29. data/ext/libsass/src/emitter.hpp +7 -7
  30. data/ext/libsass/src/environment.cpp +2 -2
  31. data/ext/libsass/src/environment.hpp +0 -2
  32. data/ext/libsass/src/error_handling.cpp +5 -5
  33. data/ext/libsass/src/error_handling.hpp +12 -12
  34. data/ext/libsass/src/eval.cpp +412 -401
  35. data/ext/libsass/src/eval.hpp +61 -62
  36. data/ext/libsass/src/expand.cpp +223 -204
  37. data/ext/libsass/src/expand.hpp +42 -42
  38. data/ext/libsass/src/extend.cpp +198 -201
  39. data/ext/libsass/src/extend.hpp +12 -14
  40. data/ext/libsass/src/file.hpp +4 -5
  41. data/ext/libsass/src/functions.cpp +413 -418
  42. data/ext/libsass/src/functions.hpp +7 -10
  43. data/ext/libsass/src/inspect.cpp +115 -109
  44. data/ext/libsass/src/inspect.hpp +69 -69
  45. data/ext/libsass/src/listize.cpp +31 -33
  46. data/ext/libsass/src/listize.hpp +8 -10
  47. data/ext/libsass/src/memory/SharedPtr.cpp +116 -0
  48. data/ext/libsass/src/memory/SharedPtr.hpp +202 -0
  49. data/ext/libsass/src/node.cpp +45 -43
  50. data/ext/libsass/src/node.hpp +15 -15
  51. data/ext/libsass/src/operation.hpp +136 -136
  52. data/ext/libsass/src/output.cpp +48 -49
  53. data/ext/libsass/src/output.hpp +14 -14
  54. data/ext/libsass/src/parser.cpp +530 -554
  55. data/ext/libsass/src/parser.hpp +91 -96
  56. data/ext/libsass/src/prelexer.cpp +13 -10
  57. data/ext/libsass/src/remove_placeholders.cpp +25 -21
  58. data/ext/libsass/src/remove_placeholders.hpp +7 -7
  59. data/ext/libsass/src/sass2scss.cpp +2 -1
  60. data/ext/libsass/src/sass_context.cpp +125 -107
  61. data/ext/libsass/src/sass_context.hpp +1 -1
  62. data/ext/libsass/src/sass_util.hpp +5 -5
  63. data/ext/libsass/src/sass_values.cpp +27 -27
  64. data/ext/libsass/src/source_map.cpp +2 -2
  65. data/ext/libsass/src/source_map.hpp +2 -2
  66. data/ext/libsass/src/subset_map.cpp +57 -0
  67. data/ext/libsass/src/subset_map.hpp +8 -76
  68. data/ext/libsass/src/to_c.cpp +13 -13
  69. data/ext/libsass/src/to_c.hpp +14 -14
  70. data/ext/libsass/src/to_value.cpp +20 -20
  71. data/ext/libsass/src/to_value.hpp +20 -21
  72. data/ext/libsass/src/util.cpp +55 -88
  73. data/ext/libsass/src/util.hpp +9 -13
  74. data/ext/libsass/src/values.cpp +27 -26
  75. data/ext/libsass/src/values.hpp +2 -2
  76. data/ext/libsass/test/test_subset_map.cpp +69 -69
  77. data/ext/libsass/win/libsass.targets +3 -2
  78. data/ext/libsass/win/libsass.vcxproj.filters +9 -6
  79. data/lib/sassc/version.rb +1 -1
  80. data/sassc.gemspec +0 -1
  81. data/test/native_test.rb +1 -1
  82. metadata +7 -5
  83. data/ext/libsass/src/ast_factory.hpp +0 -92
  84. data/ext/libsass/src/memory_manager.cpp +0 -77
  85. data/ext/libsass/src/memory_manager.hpp +0 -48
@@ -5,8 +5,8 @@
5
5
 
6
6
  namespace Sass {
7
7
 
8
- union Sass_Value* ast_node_to_sass_value (const Expression* val);
9
- Value* sass_value_to_ast_node (Memory_Manager& mem, const union Sass_Value* val);
8
+ union Sass_Value* ast_node_to_sass_value (const Expression_Ptr val);
9
+ Value_Ptr sass_value_to_ast_node (const union Sass_Value* val);
10
10
 
11
11
  }
12
12
  #endif
@@ -11,39 +11,39 @@ void assertEqual(string std::sExpected, std::string sResult);
11
11
 
12
12
  void setup() {
13
13
  ssm.clear();
14
-
14
+
15
15
  //@ssm[Set[1, 2]] = "Foo"
16
16
  std::vector<std::string> s1;
17
17
  s1.push_back("1");
18
18
  s1.push_back("2");
19
19
  ssm.put(s1, "Foo");
20
-
20
+
21
21
  //@ssm[Set["fizz", "fazz"]] = "Bar"
22
22
  std::vector<std::string> s2;
23
23
  s2.push_back("fizz");
24
24
  s2.push_back("fazz");
25
25
  ssm.put(s2, "Bar");
26
-
26
+
27
27
  //@ssm[Set[:foo, :bar]] = "Baz"
28
28
  std::vector<std::string> s3;
29
29
  s3.push_back(":foo");
30
30
  s3.push_back(":bar");
31
31
  ssm.put(s3, "Baz");
32
-
32
+
33
33
  //@ssm[Set[:foo, :bar, :baz]] = "Bang"
34
34
  std::vector<std::string> s4;
35
35
  s4.push_back(":foo");
36
36
  s4.push_back(":bar");
37
37
  s4.push_back(":baz");
38
38
  ssm.put(s4, "Bang");
39
-
39
+
40
40
  //@ssm[Set[:bip, :bop, :blip]] = "Qux"
41
41
  std::vector<std::string> s5;
42
42
  s5.push_back(":bip");
43
43
  s5.push_back(":bop");
44
44
  s5.push_back(":blip");
45
45
  ssm.put(s5, "Qux");
46
-
46
+
47
47
  //@ssm[Set[:bip, :bop]] = "Thram"
48
48
  std::vector<std::string> s6;
49
49
  s6.push_back(":bip");
@@ -53,119 +53,119 @@ void setup() {
53
53
 
54
54
  void testEqualKeys() {
55
55
  std::cout << "testEqualKeys" << std::endl;
56
-
56
+
57
57
  //assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[1, 2])
58
58
  std::vector<std::string> k1;
59
59
  k1.push_back("1");
60
60
  k1.push_back("2");
61
61
  assertEqual("[[Foo, Set[1, 2]]]", toString(ssm.get_kv(k1)));
62
-
62
+
63
63
  //assert_equal [["Bar", Set["fizz", "fazz"]]], @ssm.get(Set["fizz", "fazz"])
64
64
  std::vector<std::string> k2;
65
65
  k2.push_back("fizz");
66
66
  k2.push_back("fazz");
67
67
  assertEqual("[[Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k2)));
68
-
68
+
69
69
  std::cout << std::endl;
70
70
  }
71
71
 
72
72
  void testSubsetKeys() {
73
73
  std::cout << "testSubsetKeys" << std::endl;
74
-
74
+
75
75
  //assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[1, 2, "fuzz"])
76
76
  std::vector<std::string> k1;
77
77
  k1.push_back("1");
78
78
  k1.push_back("2");
79
79
  k1.push_back("fuzz");
80
80
  assertEqual("[[Foo, Set[1, 2]]]", toString(ssm.get_kv(k1)));
81
-
81
+
82
82
  //assert_equal [["Bar", Set["fizz", "fazz"]]], @ssm.get(Set["fizz", "fazz", 3])
83
83
  std::vector<std::string> k2;
84
84
  k2.push_back("fizz");
85
85
  k2.push_back("fazz");
86
86
  k2.push_back("3");
87
87
  assertEqual("[[Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k2)));
88
-
88
+
89
89
  std::cout << std::endl;
90
90
  }
91
91
 
92
92
  void testSupersetKeys() {
93
93
  std::cout << "testSupersetKeys" << std::endl;
94
-
94
+
95
95
  //assert_equal [], @ssm.get(Set[1])
96
96
  std::vector<std::string> k1;
97
97
  k1.push_back("1");
98
98
  assertEqual("[]", toString(ssm.get_kv(k1)));
99
-
99
+
100
100
  //assert_equal [], @ssm.get(Set[2])
101
101
  std::vector<std::string> k2;
102
102
  k2.push_back("2");
103
103
  assertEqual("[]", toString(ssm.get_kv(k2)));
104
-
104
+
105
105
  //assert_equal [], @ssm.get(Set["fizz"])
106
106
  std::vector<std::string> k3;
107
107
  k3.push_back("fizz");
108
108
  assertEqual("[]", toString(ssm.get_kv(k3)));
109
-
109
+
110
110
  //assert_equal [], @ssm.get(Set["fazz"])
111
111
  std::vector<std::string> k4;
112
112
  k4.push_back("fazz");
113
113
  assertEqual("[]", toString(ssm.get_kv(k4)));
114
-
114
+
115
115
  std::cout << std::endl;
116
116
  }
117
117
 
118
118
  void testDisjointKeys() {
119
119
  std::cout << "testDisjointKeys" << std::endl;
120
-
120
+
121
121
  //assert_equal [], @ssm.get(Set[3, 4])
122
122
  std::vector<std::string> k1;
123
123
  k1.push_back("3");
124
124
  k1.push_back("4");
125
125
  assertEqual("[]", toString(ssm.get_kv(k1)));
126
-
126
+
127
127
  //assert_equal [], @ssm.get(Set["fuzz", "frizz"])
128
128
  std::vector<std::string> k2;
129
129
  k2.push_back("fuzz");
130
130
  k2.push_back("frizz");
131
131
  assertEqual("[]", toString(ssm.get_kv(k2)));
132
-
132
+
133
133
  //assert_equal [], @ssm.get(Set["gran", 15])
134
134
  std::vector<std::string> k3;
135
135
  k3.push_back("gran");
136
136
  k3.push_back("15");
137
137
  assertEqual("[]", toString(ssm.get_kv(k3)));
138
-
138
+
139
139
  std::cout << std::endl;
140
140
  }
141
141
 
142
142
  void testSemiDisjointKeys() {
143
143
  std::cout << "testSemiDisjointKeys" << std::endl;
144
-
144
+
145
145
  //assert_equal [], @ssm.get(Set[2, 3])
146
146
  std::vector<std::string> k1;
147
147
  k1.push_back("2");
148
148
  k1.push_back("3");
149
149
  assertEqual("[]", toString(ssm.get_kv(k1)));
150
-
150
+
151
151
  //assert_equal [], @ssm.get(Set["fizz", "fuzz"])
152
152
  std::vector<std::string> k2;
153
153
  k2.push_back("fizz");
154
154
  k2.push_back("fuzz");
155
155
  assertEqual("[]", toString(ssm.get_kv(k2)));
156
-
156
+
157
157
  //assert_equal [], @ssm.get(Set[1, "fazz"])
158
158
  std::vector<std::string> k3;
159
159
  k3.push_back("1");
160
160
  k3.push_back("fazz");
161
161
  assertEqual("[]", toString(ssm.get_kv(k3)));
162
-
162
+
163
163
  std::cout << std::endl;
164
164
  }
165
165
 
166
166
  void testEmptyKeySet() {
167
167
  std::cout << "testEmptyKeySet" << std::endl;
168
-
168
+
169
169
  //assert_raises(ArgumentError) {@ssm[Set[]] = "Fail"}
170
170
  std::vector<std::string> s1;
171
171
  try {
@@ -178,16 +178,16 @@ void testEmptyKeySet() {
178
178
 
179
179
  void testEmptyKeyGet() {
180
180
  std::cout << "testEmptyKeyGet" << std::endl;
181
-
181
+
182
182
  //assert_equal [], @ssm.get(Set[])
183
183
  std::vector<std::string> k1;
184
184
  assertEqual("[]", toString(ssm.get_kv(k1)));
185
-
185
+
186
186
  std::cout << std::endl;
187
187
  }
188
188
  void testMultipleSubsets() {
189
189
  std::cout << "testMultipleSubsets" << std::endl;
190
-
190
+
191
191
  //assert_equal [["Foo", Set[1, 2]], ["Bar", Set["fizz", "fazz"]]], @ssm.get(Set[1, 2, "fizz", "fazz"])
192
192
  std::vector<std::string> k1;
193
193
  k1.push_back("1");
@@ -195,7 +195,7 @@ void testMultipleSubsets() {
195
195
  k1.push_back("fizz");
196
196
  k1.push_back("fazz");
197
197
  assertEqual("[[Foo, Set[1, 2]], [Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k1)));
198
-
198
+
199
199
  //assert_equal [["Foo", Set[1, 2]], ["Bar", Set["fizz", "fazz"]]], @ssm.get(Set[1, 2, 3, "fizz", "fazz", "fuzz"])
200
200
  std::vector<std::string> k2;
201
201
  k2.push_back("1");
@@ -205,51 +205,51 @@ void testMultipleSubsets() {
205
205
  k2.push_back("fazz");
206
206
  k2.push_back("fuzz");
207
207
  assertEqual("[[Foo, Set[1, 2]], [Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k2)));
208
-
208
+
209
209
  //assert_equal [["Baz", Set[:foo, :bar]]], @ssm.get(Set[:foo, :bar])
210
210
  std::vector<std::string> k3;
211
211
  k3.push_back(":foo");
212
212
  k3.push_back(":bar");
213
213
  assertEqual("[[Baz, Set[:foo, :bar]]]", toString(ssm.get_kv(k3)));
214
-
214
+
215
215
  //assert_equal [["Baz", Set[:foo, :bar]], ["Bang", Set[:foo, :bar, :baz]]], @ssm.get(Set[:foo, :bar, :baz])
216
216
  std::vector<std::string> k4;
217
217
  k4.push_back(":foo");
218
218
  k4.push_back(":bar");
219
219
  k4.push_back(":baz");
220
220
  assertEqual("[[Baz, Set[:foo, :bar]], [Bang, Set[:foo, :bar, :baz]]]", toString(ssm.get_kv(k4)));
221
-
221
+
222
222
  std::cout << std::endl;
223
223
  }
224
224
  void testBracketBracket() {
225
225
  std::cout << "testBracketBracket" << std::endl;
226
-
226
+
227
227
  //assert_equal ["Foo"], @ssm[Set[1, 2, "fuzz"]]
228
228
  std::vector<std::string> k1;
229
229
  k1.push_back("1");
230
230
  k1.push_back("2");
231
231
  k1.push_back("fuzz");
232
232
  assertEqual("[Foo]", toString(ssm.get_v(k1)));
233
-
233
+
234
234
  //assert_equal ["Baz", "Bang"], @ssm[Set[:foo, :bar, :baz]]
235
235
  std::vector<std::string> k2;
236
236
  k2.push_back(":foo");
237
237
  k2.push_back(":bar");
238
238
  k2.push_back(":baz");
239
239
  assertEqual("[Baz, Bang]", toString(ssm.get_v(k2)));
240
-
240
+
241
241
  std::cout << std::endl;
242
242
  }
243
243
 
244
244
  void testKeyOrder() {
245
245
  std::cout << "testEqualKeys" << std::endl;
246
-
246
+
247
247
  //assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[2, 1])
248
248
  std::vector<std::string> k1;
249
249
  k1.push_back("2");
250
250
  k1.push_back("1");
251
251
  assertEqual("[[Foo, Set[1, 2]]]", toString(ssm.get_kv(k1)));
252
-
252
+
253
253
  std::cout << std::endl;
254
254
  }
255
255
 
@@ -261,24 +261,24 @@ void testOrderPreserved() {
261
261
  s1.push_back("11");
262
262
  s1.push_back("12");
263
263
  ssm.put(s1, "1");
264
-
264
+
265
265
  //@ssm[Set[10, 11]] = 2
266
266
  std::vector<std::string> s2;
267
267
  s2.push_back("10");
268
268
  s2.push_back("11");
269
269
  ssm.put(s2, "2");
270
-
270
+
271
271
  //@ssm[Set[11]] = 3
272
272
  std::vector<std::string> s3;
273
273
  s3.push_back("11");
274
274
  ssm.put(s3, "3");
275
-
275
+
276
276
  //@ssm[Set[11, 12]] = 4
277
277
  std::vector<std::string> s4;
278
278
  s4.push_back("11");
279
279
  s4.push_back("12");
280
280
  ssm.put(s4, "4");
281
-
281
+
282
282
  //@ssm[Set[9, 10, 11, 12, 13]] = 5
283
283
  std::vector<std::string> s5;
284
284
  s5.push_back("9");
@@ -287,13 +287,13 @@ void testOrderPreserved() {
287
287
  s5.push_back("12");
288
288
  s5.push_back("13");
289
289
  ssm.put(s5, "5");
290
-
290
+
291
291
  //@ssm[Set[10, 13]] = 6
292
292
  std::vector<std::string> s6;
293
293
  s6.push_back("10");
294
294
  s6.push_back("13");
295
295
  ssm.put(s6, "6");
296
-
296
+
297
297
  //assert_equal([[1, Set[10, 11, 12]], [2, Set[10, 11]], [3, Set[11]], [4, Set[11, 12]], [5, Set[9, 10, 11, 12, 13]], [6, Set[10, 13]]], @ssm.get(Set[9, 10, 11, 12, 13]))
298
298
  std::vector<std::string> k1;
299
299
  k1.push_back("9");
@@ -302,7 +302,7 @@ void testOrderPreserved() {
302
302
  k1.push_back("12");
303
303
  k1.push_back("13");
304
304
  assertEqual("[[1, Set[10, 11, 12]], [2, Set[10, 11]], [3, Set[11]], [4, Set[11, 12]], [5, Set[9, 10, 11, 12, 13]], [6, Set[10, 13]]]", toString(ssm.get_kv(k1)));
305
-
305
+
306
306
  std::cout << std::endl;
307
307
  }
308
308
  void testMultipleEqualValues() {
@@ -312,25 +312,25 @@ void testMultipleEqualValues() {
312
312
  s1.push_back("11");
313
313
  s1.push_back("12");
314
314
  ssm.put(s1, "1");
315
-
315
+
316
316
  //@ssm[Set[12, 13]] = 2
317
317
  std::vector<std::string> s2;
318
318
  s2.push_back("12");
319
319
  s2.push_back("13");
320
320
  ssm.put(s2, "2");
321
-
321
+
322
322
  //@ssm[Set[13, 14]] = 1
323
323
  std::vector<std::string> s3;
324
324
  s3.push_back("13");
325
325
  s3.push_back("14");
326
326
  ssm.put(s3, "1");
327
-
327
+
328
328
  //@ssm[Set[14, 15]] = 1
329
329
  std::vector<std::string> s4;
330
330
  s4.push_back("14");
331
331
  s4.push_back("15");
332
332
  ssm.put(s4, "1");
333
-
333
+
334
334
  //assert_equal([[1, Set[11, 12]], [2, Set[12, 13]], [1, Set[13, 14]], [1, Set[14, 15]]], @ssm.get(Set[11, 12, 13, 14, 15]))
335
335
  std::vector<std::string> k1;
336
336
  k1.push_back("11");
@@ -339,7 +339,7 @@ void testMultipleEqualValues() {
339
339
  k1.push_back("14");
340
340
  k1.push_back("15");
341
341
  assertEqual("[[1, Set[11, 12]], [2, Set[12, 13]], [1, Set[13, 14]], [1, Set[14, 15]]]", toString(ssm.get_kv(k1)));
342
-
342
+
343
343
  std::cout << std::endl;
344
344
  }
345
345
 
@@ -348,66 +348,66 @@ int main()
348
348
  std::vector<std::string> s1;
349
349
  s1.push_back("1");
350
350
  s1.push_back("2");
351
-
351
+
352
352
  std::vector<std::string> s2;
353
353
  s2.push_back("2");
354
354
  s2.push_back("3");
355
-
355
+
356
356
  std::vector<std::string> s3;
357
357
  s3.push_back("3");
358
358
  s3.push_back("4");
359
-
359
+
360
360
  ssm.put(s1, "value1");
361
361
  ssm.put(s2, "value2");
362
362
  ssm.put(s3, "value3");
363
-
363
+
364
364
  std::vector<std::string> s4;
365
365
  s4.push_back("1");
366
366
  s4.push_back("2");
367
367
  s4.push_back("3");
368
-
368
+
369
369
  std::vector<std::pair<string, std::vector<std::string> > > fetched(ssm.get_kv(s4));
370
-
370
+
371
371
  std::cout << "PRINTING RESULTS:" << std::endl;
372
372
  for (size_t i = 0, S = fetched.size(); i < S; ++i) {
373
373
  std::cout << fetched[i].first << std::endl;
374
374
  }
375
-
375
+
376
376
  Subset_Map<string, string> ssm2;
377
377
  ssm2.put(s1, "foo");
378
378
  ssm2.put(s2, "bar");
379
379
  ssm2.put(s4, "hux");
380
-
380
+
381
381
  std::vector<std::pair<string, std::vector<std::string> > > fetched2(ssm2.get_kv(s4));
382
-
382
+
383
383
  std::cout << std::endl << "PRINTING RESULTS:" << std::endl;
384
384
  for (size_t i = 0, S = fetched2.size(); i < S; ++i) {
385
385
  std::cout << fetched2[i].first << std::endl;
386
386
  }
387
-
387
+
388
388
  std::cout << "TRYING ON A SELECTOR-LIKE OBJECT" << std::endl;
389
-
389
+
390
390
  Subset_Map<string, string> sel_ssm;
391
391
  std::vector<std::string> target;
392
392
  target.push_back("desk");
393
393
  target.push_back(".wood");
394
-
394
+
395
395
  std::vector<std::string> actual;
396
396
  actual.push_back("desk");
397
397
  actual.push_back(".wood");
398
398
  actual.push_back(".mine");
399
-
399
+
400
400
  sel_ssm.put(target, "has-aquarium");
401
401
  std::vector<std::pair<string, std::vector<std::string> > > fetched3(sel_ssm.get_kv(actual));
402
402
  std::cout << "RESULTS:" << std::endl;
403
403
  for (size_t i = 0, S = fetched3.size(); i < S; ++i) {
404
404
  std::cout << fetched3[i].first << std::endl;
405
405
  }
406
-
406
+
407
407
  std::cout << std::endl;
408
-
408
+
409
409
  // BEGIN PORTED RUBY TESTS FROM /test/sass/util/subset_map_test.rb
410
-
410
+
411
411
  setup();
412
412
  testEqualKeys();
413
413
  testSubsetKeys();
@@ -419,13 +419,13 @@ int main()
419
419
  testMultipleSubsets();
420
420
  testBracketBracket();
421
421
  testKeyOrder();
422
-
422
+
423
423
  setup();
424
424
  testOrderPreserved();
425
-
425
+
426
426
  setup();
427
427
  testMultipleEqualValues();
428
-
428
+
429
429
  return 0;
430
430
  }
431
431