trackler 2.0.5.14 → 2.0.5.15

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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/perfect-numbers/metadata.yml +1 -1
  3. data/lib/trackler/version.rb +1 -1
  4. data/tracks/csharp/config.json +17 -0
  5. data/tracks/csharp/exercises/exercises.csproj +1 -1
  6. data/tracks/csharp/exercises/react/Example.cs +124 -0
  7. data/tracks/csharp/exercises/react/HINTS.md +3 -0
  8. data/tracks/csharp/exercises/react/ReactTest.cs +121 -0
  9. data/tracks/csharp/exercises/tree-building/Example.cs +73 -0
  10. data/tracks/csharp/exercises/tree-building/TreeBuilding.cs +67 -0
  11. data/tracks/csharp/exercises/tree-building/TreeBuildingTest.cs +228 -0
  12. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  13. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  14. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  15. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  16. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  17. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  18. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  19. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  20. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  21. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  22. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  23. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  24. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  25. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  26. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  27. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  28. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  29. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  30. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  31. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  32. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  33. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  34. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  35. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  36. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  37. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  38. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  39. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  40. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  41. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  42. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  43. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  44. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  45. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  46. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  47. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  48. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  49. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  50. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  51. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  52. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  53. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  54. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  55. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  56. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  57. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  58. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  59. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  60. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  61. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  62. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  63. data/tracks/ecmascript/exercises/say/package.json +1 -1
  64. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  65. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  66. data/tracks/ecmascript/exercises/series/package.json +1 -1
  67. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  68. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  69. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  70. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  71. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  72. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  73. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  74. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  75. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  76. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  77. data/tracks/ecmascript/package.json +1 -1
  78. data/tracks/elixir/docs/ABOUT.md +1 -1
  79. data/tracks/haskell/config.json +6 -0
  80. data/tracks/haskell/exercises/run-length-encoding/examples/success-standard/package.yaml +16 -0
  81. data/tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs +21 -0
  82. data/tracks/haskell/exercises/run-length-encoding/package.yaml +19 -0
  83. data/tracks/haskell/exercises/run-length-encoding/src/RunLength.hs +7 -0
  84. data/tracks/haskell/exercises/run-length-encoding/stack.yaml +1 -0
  85. data/tracks/haskell/exercises/run-length-encoding/test/Tests.hs +75 -0
  86. data/tracks/javascript/config.json +8 -1
  87. data/tracks/javascript/exercises/run-length-encoding/example.js +11 -0
  88. data/tracks/javascript/exercises/run-length-encoding/run-length-encoding.spec.js +41 -0
  89. data/tracks/pascal/.gitignore +2 -0
  90. data/tracks/pascal/config.json +8 -8
  91. data/tracks/pascal/exercises/{Hello-World → hello-world}/uHelloWorldExample.pas +0 -0
  92. data/tracks/pascal/exercises/{Hello-World → hello-world}/uTestHelloWorld.pas +0 -0
  93. metadata +18 -36
  94. data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dpr +0 -60
  95. data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dproj +0 -176
  96. data/tracks/pascal/exercises/allergies/AllergyTests.dpr +0 -60
  97. data/tracks/pascal/exercises/allergies/AllergyTests.dproj +0 -176
  98. data/tracks/pascal/exercises/bank-account/BankAccountTests.dpr +0 -60
  99. data/tracks/pascal/exercises/bank-account/BankAccountTests.dproj +0 -176
  100. data/tracks/pascal/exercises/beer-song/BeerSongTests.dpr +0 -60
  101. data/tracks/pascal/exercises/beer-song/BeerSongTests.dproj +0 -176
  102. data/tracks/pascal/exercises/binary-search/BinarySearchTest.dpr +0 -60
  103. data/tracks/pascal/exercises/binary-search/BinarySearchTest.dproj +0 -176
  104. data/tracks/pascal/exercises/bob/BobTests.dpr +0 -60
  105. data/tracks/pascal/exercises/bob/BobTests.dproj +0 -176
  106. data/tracks/pascal/exercises/book-store/BookStoreTests.dpr +0 -60
  107. data/tracks/pascal/exercises/book-store/BookStoreTests.dproj +0 -176
  108. data/tracks/pascal/exercises/bowling/BowlingTests.dpr +0 -60
  109. data/tracks/pascal/exercises/bowling/BowlingTests.dproj +0 -176
  110. data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dpr +0 -60
  111. data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dproj +0 -176
  112. data/tracks/pascal/exercises/clock/ClockTest.dpr +0 -60
  113. data/tracks/pascal/exercises/clock/ClockTest.dproj +0 -176
  114. data/tracks/pascal/exercises/etl/ETLtests.dpr +0 -60
  115. data/tracks/pascal/exercises/etl/ETLtests.dproj +0 -176
  116. data/tracks/pascal/exercises/hamming/Hamming.dpr +0 -60
  117. data/tracks/pascal/exercises/hamming/Hamming.dproj +0 -176
  118. data/tracks/pascal/exercises/leap/LeapTest.dpr +0 -60
  119. data/tracks/pascal/exercises/leap/LeapTest.dproj +0 -176
  120. data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dpr +0 -60
  121. data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dproj +0 -176
  122. data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dpr +0 -60
  123. data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dproj +0 -176
  124. data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dpr +0 -60
  125. data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dproj +0 -176
@@ -0,0 +1,228 @@
1
+ using NUnit.Framework;
2
+
3
+ public class TreeBuildingTest
4
+ {
5
+ [Test]
6
+ public void One_node()
7
+ {
8
+ var records = new[]
9
+ {
10
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 }
11
+ };
12
+
13
+ var tree = TreeBuilder.BuildTree(records);
14
+
15
+ AssertTreeIsLeaf(tree, id: 0);
16
+ }
17
+
18
+ [Test]
19
+ public void Three_nodes_in_order()
20
+ {
21
+ var records = new[]
22
+ {
23
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 },
24
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
25
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 }
26
+ };
27
+
28
+ var tree = TreeBuilder.BuildTree(records);
29
+
30
+ AssertTreeIsBranch(tree, id: 0, childCount: 2);
31
+ AssertTreeIsLeaf(tree.Children[0], id: 1);
32
+ AssertTreeIsLeaf(tree.Children[1], id: 2);
33
+ }
34
+
35
+ [Test]
36
+ public void Three_nodes_in_reverse_order()
37
+ {
38
+ var records = new[]
39
+ {
40
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 },
41
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
42
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 }
43
+ };
44
+
45
+ var tree = TreeBuilder.BuildTree(records);
46
+
47
+ AssertTreeIsBranch(tree, id: 0, childCount: 2);
48
+ AssertTreeIsLeaf(tree.Children[0], id: 1);
49
+ AssertTreeIsLeaf(tree.Children[1], id: 2);
50
+ }
51
+
52
+ [Test]
53
+ public void More_than_two_children()
54
+ {
55
+ var records = new[]
56
+ {
57
+ new TreeBuildingRecord { RecordId = 3, ParentId = 0 },
58
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 },
59
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
60
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 }
61
+ };
62
+
63
+ var tree = TreeBuilder.BuildTree(records);
64
+
65
+ AssertTreeIsBranch(tree, id: 0, childCount: 3);
66
+ AssertTreeIsLeaf(tree.Children[0], id: 1);
67
+ AssertTreeIsLeaf(tree.Children[1], id: 2);
68
+ AssertTreeIsLeaf(tree.Children[2], id: 3);
69
+ }
70
+
71
+ [Test]
72
+ public void Binary_tree()
73
+ {
74
+ var records = new[]
75
+ {
76
+ new TreeBuildingRecord { RecordId = 5, ParentId = 1 },
77
+ new TreeBuildingRecord { RecordId = 3, ParentId = 2 },
78
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 },
79
+ new TreeBuildingRecord { RecordId = 4, ParentId = 1 },
80
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
81
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 },
82
+ new TreeBuildingRecord { RecordId = 6, ParentId = 2 }
83
+ };
84
+
85
+ var tree = TreeBuilder.BuildTree(records);
86
+
87
+ AssertTreeIsBranch(tree, id: 0, childCount: 2);
88
+ AssertTreeIsBranch(tree.Children[0], id: 1, childCount: 2);
89
+ AssertTreeIsBranch(tree.Children[1], id: 2, childCount: 2);
90
+
91
+ AssertTreeIsLeaf(tree.Children[0].Children[0], id: 4);
92
+ AssertTreeIsLeaf(tree.Children[0].Children[1], id: 5);
93
+ AssertTreeIsLeaf(tree.Children[1].Children[0], id: 3);
94
+ AssertTreeIsLeaf(tree.Children[1].Children[1], id: 6);
95
+ }
96
+
97
+ [Test]
98
+ public void Unbalanced_tree()
99
+ {
100
+ var records = new[]
101
+ {
102
+ new TreeBuildingRecord { RecordId = 5, ParentId = 2 },
103
+ new TreeBuildingRecord { RecordId = 3, ParentId = 2 },
104
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 },
105
+ new TreeBuildingRecord { RecordId = 4, ParentId = 1 },
106
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
107
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 },
108
+ new TreeBuildingRecord { RecordId = 6, ParentId = 2 }
109
+ };
110
+
111
+ var tree = TreeBuilder.BuildTree(records);
112
+
113
+ AssertTreeIsBranch(tree, id: 0, childCount: 2);
114
+ AssertTreeIsBranch(tree.Children[0], id: 1, childCount: 1);
115
+ AssertTreeIsBranch(tree.Children[1], id: 2, childCount: 3);
116
+
117
+ AssertTreeIsLeaf(tree.Children[0].Children[0], id: 4);
118
+ AssertTreeIsLeaf(tree.Children[1].Children[0], id: 3);
119
+ AssertTreeIsLeaf(tree.Children[1].Children[1], id: 5);
120
+ AssertTreeIsLeaf(tree.Children[1].Children[2], id: 6);
121
+ }
122
+
123
+ [Test]
124
+ public void Empty_input()
125
+ {
126
+ var records = new TreeBuildingRecord[0];
127
+
128
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
129
+ }
130
+
131
+ [Test]
132
+ public void Root_node_has_parent()
133
+ {
134
+ var records = new[]
135
+ {
136
+ new TreeBuildingRecord { RecordId = 0, ParentId = 1 },
137
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 }
138
+ };
139
+
140
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
141
+ }
142
+
143
+ [Test]
144
+ public void No_root_node()
145
+ {
146
+ var records = new[]
147
+ {
148
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 }
149
+ };
150
+
151
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
152
+ }
153
+
154
+
155
+ [Test]
156
+ public void Non_continuous()
157
+ {
158
+ var records = new[]
159
+ {
160
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 },
161
+ new TreeBuildingRecord { RecordId = 4, ParentId = 2 },
162
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
163
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 }
164
+ };
165
+
166
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
167
+ }
168
+
169
+ [Test]
170
+ public void Cycle_directly()
171
+ {
172
+ var records = new[]
173
+ {
174
+ new TreeBuildingRecord { RecordId = 5, ParentId = 2 },
175
+ new TreeBuildingRecord { RecordId = 3, ParentId = 2 },
176
+ new TreeBuildingRecord { RecordId = 2, ParentId = 2 },
177
+ new TreeBuildingRecord { RecordId = 4, ParentId = 1 },
178
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
179
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 },
180
+ new TreeBuildingRecord { RecordId = 6, ParentId = 3 }
181
+ };
182
+
183
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
184
+ }
185
+
186
+ [Test]
187
+ public void Cycle_indirectly()
188
+ {
189
+ var records = new[]
190
+ {
191
+ new TreeBuildingRecord { RecordId = 5, ParentId = 2 },
192
+ new TreeBuildingRecord { RecordId = 3, ParentId = 2 },
193
+ new TreeBuildingRecord { RecordId = 2, ParentId = 6 },
194
+ new TreeBuildingRecord { RecordId = 4, ParentId = 1 },
195
+ new TreeBuildingRecord { RecordId = 1, ParentId = 0 },
196
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 },
197
+ new TreeBuildingRecord { RecordId = 6, ParentId = 3 }
198
+ };
199
+
200
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
201
+ }
202
+
203
+ [Test]
204
+ public void Higher_id_parent_of_lower_id()
205
+ {
206
+ var records = new[]
207
+ {
208
+ new TreeBuildingRecord { RecordId = 0, ParentId = 0 },
209
+ new TreeBuildingRecord { RecordId = 2, ParentId = 0 },
210
+ new TreeBuildingRecord { RecordId = 1, ParentId = 2 }
211
+ };
212
+
213
+ Assert.That(() => TreeBuilder.BuildTree(records), Throws.Exception);
214
+ }
215
+
216
+ private static void AssertTreeIsBranch(Tree tree, int id, int childCount)
217
+ {
218
+ Assert.That(tree.Id, Is.EqualTo(id));
219
+ Assert.That(tree.IsLeaf, Is.False);
220
+ Assert.That(tree.Children.Count, Is.EqualTo(childCount));
221
+ }
222
+
223
+ private static void AssertTreeIsLeaf(Tree tree, int id)
224
+ {
225
+ Assert.That(tree.Id, Is.EqualTo(id));
226
+ Assert.That(tree.IsLeaf, Is.True);
227
+ }
228
+ }
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "gulp": "~3.9.0",
15
15
  "gulp-babel": "~5.3.0",
16
16
  "gulp-eslint": "^1.1.0",
17
- "gulp-jasmine": "~2.0.1",
17
+ "gulp-jasmine": "~2.4.2",
18
18
  "yargs": "~3.27.0"
19
19
  },
20
20
  "scripts": {