trackler 2.0.8.47 → 2.0.8.48
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/c/config.json +9 -0
- data/tracks/c/exercises/palindrome-products/makefile +16 -0
- data/tracks/c/exercises/palindrome-products/src/example.c +36 -0
- data/tracks/c/exercises/palindrome-products/src/example.h +12 -0
- data/tracks/c/exercises/palindrome-products/test/test_palindrome_products.c +25 -0
- data/tracks/c/exercises/palindrome-products/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/palindrome-products/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/palindrome-products/test/vendor/unity_internals.h +701 -0
- data/tracks/go/exercises/luhn/.meta/gen.go +3 -5
- data/tracks/go/exercises/luhn/cases_test.go +2 -1
- data/tracks/java/exercises/atbash-cipher/src/example/java/Atbash.java +5 -5
- data/tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java +18 -18
- data/tracks/lfe/docs/INSTALLATION.md +34 -0
- data/tracks/objective-c/config.json +8 -0
- data/tracks/objective-c/exercises/sieve/SieveExample.h +7 -0
- data/tracks/objective-c/exercises/sieve/SieveExample.m +31 -0
- data/tracks/objective-c/exercises/sieve/SieveTest.m +38 -0
- data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +18 -0
- data/tracks/purescript/.travis.yml +1 -1
- data/tracks/purescript/bin/test-one.sh +4 -4
- data/tracks/purescript/exercises/accumulate/bower.json +3 -3
- data/tracks/purescript/exercises/acronym/bower.json +4 -4
- data/tracks/purescript/exercises/all-your-base/bower.json +3 -3
- data/tracks/purescript/exercises/allergies/bower.json +5 -5
- data/tracks/purescript/exercises/atbash-cipher/bower.json +5 -5
- data/tracks/purescript/exercises/binary-search/bower.json +3 -3
- data/tracks/purescript/exercises/bob/bower.json +4 -4
- data/tracks/purescript/exercises/bracket-push/bower.json +4 -4
- data/tracks/purescript/exercises/difference-of-squares/bower.json +3 -3
- data/tracks/purescript/exercises/hello-world/bower.json +4 -4
- data/tracks/purescript/exercises/leap/bower.json +3 -3
- data/tracks/purescript/exercises/meetup/bower.json +4 -4
- data/tracks/purescript/exercises/pangram/bower.json +4 -4
- data/tracks/purescript/exercises/raindrops/bower.json +3 -3
- data/tracks/purescript/exercises/scrabble-score/bower.json +3 -3
- data/tracks/purescript/exercises/triangle/bower.json +6 -6
- data/tracks/purescript/exercises/word-count/bower.json +4 -4
- metadata +12 -2
@@ -22,7 +22,7 @@ func main() {
|
|
22
22
|
|
23
23
|
// The JSON structure we expect to be able to unmarshal into
|
24
24
|
type js struct {
|
25
|
-
|
25
|
+
Cases []struct {
|
26
26
|
Description string
|
27
27
|
Input string
|
28
28
|
Expected bool
|
@@ -32,16 +32,14 @@ type js struct {
|
|
32
32
|
// template applied to above data structure generates the Go test cases
|
33
33
|
var tmpl = `package luhn
|
34
34
|
|
35
|
-
|
36
|
-
{{if .Commit}}// Commit: {{.Commit}}
|
37
|
-
{{end}}
|
35
|
+
{{.Header}}
|
38
36
|
|
39
37
|
var testCases = []struct {
|
40
38
|
description string
|
41
39
|
input string
|
42
40
|
ok bool
|
43
41
|
}{
|
44
|
-
{{range .J.
|
42
|
+
{{range .J.Cases}}{
|
45
43
|
{{printf "%q" .Description}},
|
46
44
|
{{printf "%q" .Input}},
|
47
45
|
{{.Expected}},
|
@@ -7,7 +7,7 @@ public class Atbash {
|
|
7
7
|
private static final String PLAIN = "abcdefghijklmnopqrstuvwxyz";
|
8
8
|
private static final String CIPHER = "zyxwvutsrqponmlkjihgfedcba";
|
9
9
|
|
10
|
-
public
|
10
|
+
public String encode(String input) {
|
11
11
|
String encoded = stripInvalidCharacters(input).toLowerCase();
|
12
12
|
String cyphered = "";
|
13
13
|
|
@@ -18,7 +18,7 @@ public class Atbash {
|
|
18
18
|
return splitIntoFiveLetterWords(cyphered);
|
19
19
|
}
|
20
20
|
|
21
|
-
public
|
21
|
+
public String decode(String input) {
|
22
22
|
String encoded = stripInvalidCharacters(input).toLowerCase();
|
23
23
|
String deciphered = "";
|
24
24
|
|
@@ -29,7 +29,7 @@ public class Atbash {
|
|
29
29
|
return deciphered;
|
30
30
|
}
|
31
31
|
|
32
|
-
private
|
32
|
+
private String stripInvalidCharacters(String input) {
|
33
33
|
String filteredValue = "";
|
34
34
|
|
35
35
|
for (char c : input.toCharArray()) {
|
@@ -41,13 +41,13 @@ public class Atbash {
|
|
41
41
|
return filteredValue;
|
42
42
|
}
|
43
43
|
|
44
|
-
private
|
44
|
+
private char applyCipher(char input) {
|
45
45
|
int idx = PLAIN.indexOf(input);
|
46
46
|
|
47
47
|
return idx >= 0 ? CIPHER.toCharArray()[idx] : input;
|
48
48
|
}
|
49
49
|
|
50
|
-
private
|
50
|
+
private String splitIntoFiveLetterWords(String value) {
|
51
51
|
List<String> words = new ArrayList<>();
|
52
52
|
|
53
53
|
for (int i = 0; i < value.length(); i += GROUP_SIZE) {
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import org.junit.Test;
|
2
1
|
import org.junit.Ignore;
|
2
|
+
import org.junit.Test;
|
3
3
|
import org.junit.experimental.runners.Enclosed;
|
4
4
|
import org.junit.runner.RunWith;
|
5
5
|
import org.junit.runners.Parameterized;
|
@@ -20,14 +20,14 @@ public class AtbashTest {
|
|
20
20
|
|
21
21
|
@Parameters(name = "{index}: expected plaintext \"{0}\" to encode to ciphertext \"{1}\".")
|
22
22
|
public static Collection<Object[]> data() {
|
23
|
-
return Arrays.asList(new Object[][]
|
24
|
-
{
|
25
|
-
{
|
26
|
-
{
|
27
|
-
{
|
28
|
-
{
|
29
|
-
{
|
30
|
-
{
|
23
|
+
return Arrays.asList(new Object[][]{
|
24
|
+
{"no", "ml"},
|
25
|
+
{"yes", "bvh"},
|
26
|
+
{"OMG", "lnt"},
|
27
|
+
{"mindblowingly", "nrmwy oldrm tob"},
|
28
|
+
{"Testing, 1 2 3, testing.", "gvhgr mt123 gvhgr mt"},
|
29
|
+
{"Truth is fiction.", "gifgs rhurx grlm"},
|
30
|
+
{"The quick brown fox jumps over the lazy dog.", "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt"}
|
31
31
|
});
|
32
32
|
}
|
33
33
|
|
@@ -37,9 +37,9 @@ public class AtbashTest {
|
|
37
37
|
}
|
38
38
|
|
39
39
|
|
40
|
-
|
40
|
+
@Test
|
41
41
|
public void test() {
|
42
|
-
assertEquals(ciphertext, Atbash.encode(plaintext));
|
42
|
+
assertEquals(ciphertext, new Atbash().encode(plaintext));
|
43
43
|
}
|
44
44
|
}
|
45
45
|
|
@@ -50,11 +50,11 @@ public class AtbashTest {
|
|
50
50
|
|
51
51
|
@Parameters(name = "{index}: expected ciphertext \"{0}\" to decode to plaintext \"{1}\".")
|
52
52
|
public static Collection<Object[]> data() {
|
53
|
-
return Arrays.asList(new Object[][]
|
54
|
-
{
|
55
|
-
{
|
56
|
-
{
|
57
|
-
{
|
53
|
+
return Arrays.asList(new Object[][]{
|
54
|
+
{"vcvix rhn", "exercism"},
|
55
|
+
{"zmlyh gzxov rhlug vmzhg vkkrm thglm v", "anobstacleisoftenasteppingstone"},
|
56
|
+
{"gvhgr mt123 gvhgr mt", "testing123testing"},
|
57
|
+
{"gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt", "thequickbrownfoxjumpsoverthelazydog"}
|
58
58
|
});
|
59
59
|
}
|
60
60
|
|
@@ -64,9 +64,9 @@ public class AtbashTest {
|
|
64
64
|
}
|
65
65
|
|
66
66
|
@Ignore
|
67
|
-
|
67
|
+
@Test
|
68
68
|
public void test() {
|
69
|
-
assertEquals(plaintext, Atbash.decode(ciphertext));
|
69
|
+
assertEquals(plaintext, new Atbash().decode(ciphertext));
|
70
70
|
}
|
71
71
|
}
|
72
72
|
}
|
@@ -16,6 +16,40 @@ Install LFE:
|
|
16
16
|
$ brew install lfe
|
17
17
|
```
|
18
18
|
|
19
|
+
### Using a docker container
|
20
|
+
If you just want to quickly take a look at LFE without polluting your
|
21
|
+
system with new packages, you can just pull a docker container with
|
22
|
+
LFE preinstalled.
|
23
|
+
|
24
|
+
Let's fetch a Debian image with LFE:
|
25
|
+
|
26
|
+
```bash
|
27
|
+
$ docker pull lfex/debian # it will take a while...
|
28
|
+
[...]
|
29
|
+
```
|
30
|
+
|
31
|
+
Now let's run the LFE REPL inside the container:
|
32
|
+
|
33
|
+
```bash
|
34
|
+
$ docker run -i -t lfex/debian lfe
|
35
|
+
Erlang/OTP 19 [ert[...]
|
36
|
+
|
37
|
+
lfe >
|
38
|
+
```
|
39
|
+
|
40
|
+
And let's write some LFE to test it:
|
41
|
+
|
42
|
+
```bash
|
43
|
+
lfe > (* 7 4)
|
44
|
+
28
|
45
|
+
lfe > (lfe_io:format "hello world~n" ())
|
46
|
+
hello world
|
47
|
+
ok
|
48
|
+
```
|
49
|
+
|
50
|
+
Nice! Use `(exit)` or Ctrl-C (C-c) twice to exit.
|
51
|
+
|
52
|
+
|
19
53
|
### Installing from Source
|
20
54
|
Install your system's "developer tools" or "essential build packages", `git`
|
21
55
|
and Erlang's `erl`.
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#import "SieveExample.h"
|
2
|
+
|
3
|
+
@implementation Sieve
|
4
|
+
|
5
|
+
+ (NSArray<NSNumber *> *)primesUpTo:(int)limit {
|
6
|
+
if (limit < 2) {
|
7
|
+
return @[];
|
8
|
+
}
|
9
|
+
|
10
|
+
NSMutableArray<NSNumber *> *numbers = [[NSMutableArray alloc] init];
|
11
|
+
|
12
|
+
for (int i = 2; i <= limit; i++) {
|
13
|
+
[numbers addObject:@(i)];
|
14
|
+
}
|
15
|
+
|
16
|
+
NSMutableArray<NSNumber *> *primes = [[NSMutableArray alloc] init];
|
17
|
+
|
18
|
+
while (numbers.count > 0) {
|
19
|
+
NSNumber *target = [numbers objectAtIndex:0];
|
20
|
+
[numbers removeObjectAtIndex:0];
|
21
|
+
[primes addObject:target];
|
22
|
+
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSNumber *number, NSDictionary *bindings) {
|
23
|
+
return number.intValue % target.intValue != 0;
|
24
|
+
}];
|
25
|
+
[numbers filterUsingPredicate:predicate];
|
26
|
+
}
|
27
|
+
|
28
|
+
return primes;
|
29
|
+
}
|
30
|
+
|
31
|
+
@end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#import <XCTest/XCTest.h>
|
2
|
+
|
3
|
+
#if __has_include("SieveExample.h")
|
4
|
+
# import "SieveExample.h"
|
5
|
+
# else
|
6
|
+
# import "Sieve.h"
|
7
|
+
#endif
|
8
|
+
|
9
|
+
@interface SieveTest : XCTestCase
|
10
|
+
|
11
|
+
@end
|
12
|
+
|
13
|
+
@implementation SieveTest
|
14
|
+
|
15
|
+
- (void)testAFewPrimes {
|
16
|
+
NSArray<NSNumber *> *expected = @[@2, @3, @5, @7];
|
17
|
+
XCTAssertEqualObjects(expected, [Sieve primesUpTo:10]);
|
18
|
+
}
|
19
|
+
|
20
|
+
- (void)testPrimes {
|
21
|
+
NSArray<NSNumber *> *expected = @[@2, @3, @5, @7, @11, @13, @17, @19, @23, @29, @31, @37, @41, @43, @47, @53, @59,
|
22
|
+
@61, @67, @71, @73, @79, @83, @89, @97, @101, @103, @107, @109, @113, @127,
|
23
|
+
@131, @137, @139, @149, @151, @157, @163, @167, @173, @179, @181, @191,
|
24
|
+
@193, @197, @199, @211, @223, @227, @229, @233, @239, @241, @251, @257,
|
25
|
+
@263, @269, @271, @277, @281, @283, @293, @307, @311, @313, @317, @331,
|
26
|
+
@337, @347, @349, @353, @359, @367, @373, @379, @383, @389, @397, @401,
|
27
|
+
@409, @419, @421, @431, @433, @439, @443, @449, @457, @461, @463, @467,
|
28
|
+
@479, @487, @491, @499, @503, @509, @521, @523, @541, @547, @557, @563,
|
29
|
+
@569, @571, @577, @587, @593, @599, @601, @607, @613, @617, @619, @631,
|
30
|
+
@641, @643, @647, @653, @659, @661, @673, @677, @683, @691, @701, @709,
|
31
|
+
@719, @727, @733, @739, @743, @751, @757, @761, @769, @773, @787, @797,
|
32
|
+
@809, @811, @821, @823, @827, @829, @839, @853, @857, @859, @863, @877,
|
33
|
+
@881, @883, @887, @907, @911, @919, @929, @937, @941, @947, @953, @967,
|
34
|
+
@971, @977, @983, @991, @997];
|
35
|
+
XCTAssertEqualObjects(expected, [Sieve primesUpTo:1000]);
|
36
|
+
}
|
37
|
+
|
38
|
+
@end
|
@@ -79,12 +79,14 @@
|
|
79
79
|
E95C52561E81C82A0095D321 /* BinarySearchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E95C52541E81C82A0095D321 /* BinarySearchTest.m */; };
|
80
80
|
E96993981DF60E1E009EA223 /* TransposeExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E96993971DF60E1E009EA223 /* TransposeExample.m */; };
|
81
81
|
E969939A1DF60E5F009EA223 /* TransposeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E96993991DF60E5F009EA223 /* TransposeTest.m */; };
|
82
|
+
E973200C1E9DA0A900ABEE5C /* SieveExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E973200B1E9DA0A900ABEE5C /* SieveExample.m */; };
|
82
83
|
E9895B6E1E8DA8E8006AD25D /* CryptoSquareExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9895B6D1E8DA8E8006AD25D /* CryptoSquareExample.m */; };
|
83
84
|
E9895B701E8DA914006AD25D /* CryptoSquareTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9895B6F1E8DA914006AD25D /* CryptoSquareTest.m */; };
|
84
85
|
E99D1D811D5533BF0006A303 /* SumOfMultiplesExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E99D1D801D5533BF0006A303 /* SumOfMultiplesExample.m */; };
|
85
86
|
E99D1D831D5533D80006A303 /* SumOfMultiplesTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E99D1D821D5533D80006A303 /* SumOfMultiplesTest.m */; };
|
86
87
|
E9A7B2F71DA5AC37009056B6 /* LargestSeriesProductExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A7B2F61DA5AC37009056B6 /* LargestSeriesProductExample.m */; };
|
87
88
|
E9A7B2F91DA5AC55009056B6 /* LargestSeriesProductTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A7B2F81DA5AC55009056B6 /* LargestSeriesProductTest.m */; };
|
89
|
+
E9B062201E9E7C6D000BE589 /* SieveTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B0621F1E9E7C6D000BE589 /* SieveTest.m */; };
|
88
90
|
E9B345F81DB93822006EFBE2 /* PangramExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B345F71DB93822006EFBE2 /* PangramExample.m */; };
|
89
91
|
E9B345FA1DB93839006EFBE2 /* PangramTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B345F91DB93839006EFBE2 /* PangramTest.m */; };
|
90
92
|
E9C1C0231D9D993E0015E86E /* SecretHandshakeExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C1C0221D9D993E0015E86E /* SecretHandshakeExample.m */; };
|
@@ -191,6 +193,8 @@
|
|
191
193
|
E96993961DF60E1E009EA223 /* TransposeExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransposeExample.h; path = ../../exercises/transpose/TransposeExample.h; sourceTree = "<group>"; };
|
192
194
|
E96993971DF60E1E009EA223 /* TransposeExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TransposeExample.m; path = ../../exercises/transpose/TransposeExample.m; sourceTree = "<group>"; };
|
193
195
|
E96993991DF60E5F009EA223 /* TransposeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TransposeTest.m; path = ../../exercises/transpose/TransposeTest.m; sourceTree = "<group>"; };
|
196
|
+
E973200A1E9DA0A900ABEE5C /* SieveExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SieveExample.h; path = ../../exercises/sieve/SieveExample.h; sourceTree = "<group>"; };
|
197
|
+
E973200B1E9DA0A900ABEE5C /* SieveExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SieveExample.m; path = ../../exercises/sieve/SieveExample.m; sourceTree = "<group>"; };
|
194
198
|
E9895B6C1E8DA8E8006AD25D /* CryptoSquareExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CryptoSquareExample.h; path = "../../exercises/crypto-square/CryptoSquareExample.h"; sourceTree = "<group>"; };
|
195
199
|
E9895B6D1E8DA8E8006AD25D /* CryptoSquareExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CryptoSquareExample.m; path = "../../exercises/crypto-square/CryptoSquareExample.m"; sourceTree = "<group>"; };
|
196
200
|
E9895B6F1E8DA914006AD25D /* CryptoSquareTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CryptoSquareTest.m; path = "../../exercises/crypto-square/CryptoSquareTest.m"; sourceTree = "<group>"; };
|
@@ -200,6 +204,7 @@
|
|
200
204
|
E9A7B2F51DA5AC37009056B6 /* LargestSeriesProductExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LargestSeriesProductExample.h; path = "../../exercises/largest-series-product/LargestSeriesProductExample.h"; sourceTree = "<group>"; };
|
201
205
|
E9A7B2F61DA5AC37009056B6 /* LargestSeriesProductExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LargestSeriesProductExample.m; path = "../../exercises/largest-series-product/LargestSeriesProductExample.m"; sourceTree = "<group>"; };
|
202
206
|
E9A7B2F81DA5AC55009056B6 /* LargestSeriesProductTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LargestSeriesProductTest.m; path = "../../exercises/largest-series-product/LargestSeriesProductTest.m"; sourceTree = "<group>"; };
|
207
|
+
E9B0621F1E9E7C6D000BE589 /* SieveTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SieveTest.m; path = ../../exercises/sieve/SieveTest.m; sourceTree = "<group>"; };
|
203
208
|
E9B345F61DB93822006EFBE2 /* PangramExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PangramExample.h; path = ../../exercises/pangram/PangramExample.h; sourceTree = "<group>"; };
|
204
209
|
E9B345F71DB93822006EFBE2 /* PangramExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PangramExample.m; path = ../../exercises/pangram/PangramExample.m; sourceTree = "<group>"; };
|
205
210
|
E9B345F91DB93839006EFBE2 /* PangramTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PangramTest.m; path = ../../exercises/pangram/PangramTest.m; sourceTree = "<group>"; };
|
@@ -270,6 +275,7 @@
|
|
270
275
|
E9C1C02C1D9EC0E50015E86E /* RunLengthEncoding */,
|
271
276
|
E907FE8F1D87545300B93DA9 /* ScrabbleScore */,
|
272
277
|
E9C1C0201D9D98B80015E86E /* SecretHandshake */,
|
278
|
+
E97320091E9DA06500ABEE5C /* Sieve */,
|
273
279
|
E9E8B6F61D519E340012F12C /* SpaceAge */,
|
274
280
|
A0BBFCBC1E37703D00230071 /* Sublist */,
|
275
281
|
E99D1D7B1D5532C50006A303 /* SumOfMultiples */,
|
@@ -437,6 +443,16 @@
|
|
437
443
|
name = Transpose;
|
438
444
|
sourceTree = "<group>";
|
439
445
|
};
|
446
|
+
E97320091E9DA06500ABEE5C /* Sieve */ = {
|
447
|
+
isa = PBXGroup;
|
448
|
+
children = (
|
449
|
+
E973200A1E9DA0A900ABEE5C /* SieveExample.h */,
|
450
|
+
E973200B1E9DA0A900ABEE5C /* SieveExample.m */,
|
451
|
+
E9B0621F1E9E7C6D000BE589 /* SieveTest.m */,
|
452
|
+
);
|
453
|
+
name = Sieve;
|
454
|
+
sourceTree = "<group>";
|
455
|
+
};
|
440
456
|
E9895B6B1E8DA8AA006AD25D /* CryptoSquare */ = {
|
441
457
|
isa = PBXGroup;
|
442
458
|
children = (
|
@@ -775,6 +791,7 @@
|
|
775
791
|
files = (
|
776
792
|
1EFACAA71CCCAF3D006F2E69 /* EtlExample.m in Sources */,
|
777
793
|
1EFACAA31CCCAF3D006F2E69 /* AnagramExample.m in Sources */,
|
794
|
+
E9B062201E9E7C6D000BE589 /* SieveTest.m in Sources */,
|
778
795
|
E94ACA131D41760300D56CC2 /* AllYourBaseExample.m in Sources */,
|
779
796
|
E94ACA151D41763800D56CC2 /* AllYourBaseTest.m in Sources */,
|
780
797
|
E96993981DF60E1E009EA223 /* TransposeExample.m in Sources */,
|
@@ -808,6 +825,7 @@
|
|
808
825
|
E9381D4E1D8F2982003F22A1 /* RaindropsTest.m in Sources */,
|
809
826
|
E9381D541D8F2DE1003F22A1 /* ClockTest.m in Sources */,
|
810
827
|
1EFACAB41CCCAF3D006F2E69 /* PerfectNumbersTest.m in Sources */,
|
828
|
+
E973200C1E9DA0A900ABEE5C /* SieveExample.m in Sources */,
|
811
829
|
E9FDCA191D5407D2004EE8DB /* RomanNumeralsExample.m in Sources */,
|
812
830
|
E9B345F81DB93822006EFBE2 /* PangramExample.m in Sources */,
|
813
831
|
1EFACAAE1CCCAF3D006F2E69 /* HelloWorldTest.m in Sources */,
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
exercise_dir="$1"
|
4
4
|
if [[ -z "$exercise_dir" ]]; then
|
5
|
-
echo "Usage: $BASH_SOURCE <exercise>"
|
5
|
+
echo "Usage: $BASH_SOURCE <exercise>"
|
6
6
|
exit 1
|
7
7
|
fi
|
8
8
|
|
@@ -34,7 +34,7 @@ exercise_examples_src=examples/src
|
|
34
34
|
|
35
35
|
# Setup Travis cache
|
36
36
|
for dir in bower_components output; do
|
37
|
-
cache="$cache_dir/$
|
37
|
+
cache="$cache_dir/$dir"
|
38
38
|
|
39
39
|
mkdir -p "$cache"
|
40
40
|
ln -f -s "$cache"
|
@@ -43,8 +43,8 @@ done
|
|
43
43
|
mv "$exercise_src" "$exercise_src.impl"
|
44
44
|
mv "$exercise_examples_src" "$exercise_src"
|
45
45
|
|
46
|
-
bower install
|
47
|
-
pulp test
|
46
|
+
time bower install
|
47
|
+
time pulp test
|
48
48
|
|
49
49
|
# capture result from last command (pulp test)
|
50
50
|
if [[ $? == 0 ]]; then
|
@@ -7,10 +7,10 @@
|
|
7
7
|
"output"
|
8
8
|
],
|
9
9
|
"dependencies": {
|
10
|
-
"purescript-prelude": "^
|
10
|
+
"purescript-prelude": "^3.0.0"
|
11
11
|
},
|
12
12
|
"devDependencies": {
|
13
|
-
"purescript-psci-support": "^
|
14
|
-
"purescript-test-unit": "^
|
13
|
+
"purescript-psci-support": "^3.0.0",
|
14
|
+
"purescript-test-unit": "^11.0.0"
|
15
15
|
}
|
16
16
|
}
|
@@ -7,11 +7,11 @@
|
|
7
7
|
"output"
|
8
8
|
],
|
9
9
|
"dependencies": {
|
10
|
-
"purescript-prelude": "^
|
11
|
-
"purescript-unicode": "^
|
10
|
+
"purescript-prelude": "^3.0.0",
|
11
|
+
"purescript-unicode": "^3.0.1"
|
12
12
|
},
|
13
13
|
"devDependencies": {
|
14
|
-
"purescript-psci-support": "^
|
15
|
-
"purescript-test-unit": "^
|
14
|
+
"purescript-psci-support": "^3.0.0",
|
15
|
+
"purescript-test-unit": "^11.0.0"
|
16
16
|
}
|
17
17
|
}
|
@@ -7,10 +7,10 @@
|
|
7
7
|
"output"
|
8
8
|
],
|
9
9
|
"dependencies": {
|
10
|
-
"purescript-prelude": "^
|
10
|
+
"purescript-prelude": "^3.0.0"
|
11
11
|
},
|
12
12
|
"devDependencies": {
|
13
|
-
"purescript-psci-support": "^
|
14
|
-
"purescript-test-unit": "^
|
13
|
+
"purescript-psci-support": "^3.0.0",
|
14
|
+
"purescript-test-unit": "^11.0.0"
|
15
15
|
}
|
16
16
|
}
|