trackler 2.0.8.47 → 2.0.8.48
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.
- 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
|
}
|