trackler 2.1.0.14 → 2.1.0.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.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/csharp/exercises/acronym/AcronymTest.cs +2 -2
- data/tracks/ecmascript/config.json +8 -1
- data/tracks/ecmascript/exercises/connect/connect.spec.js +110 -0
- data/tracks/ecmascript/exercises/connect/example.js +68 -0
- data/tracks/ecmascript/exercises/connect/package.json +82 -0
- data/tracks/haskell/exercises/difference-of-squares/package.yaml +1 -1
- data/tracks/haskell/exercises/difference-of-squares/test/Tests.hs +3 -4
- data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +1 -1
- data/tracks/java/exercises/bracket-push/src/test/java/BracketCheckerTest.java +1 -1
- data/tracks/java/exercises/wordy/src/test/java/WordProblemSolverTest.java +1 -1
- data/tracks/lisp/.travis.yml +12 -14
- data/tracks/lisp/README.md +16 -48
- data/tracks/objective-c/config.json +9 -0
- data/tracks/objective-c/exercises/luhn/LuhnExample.h +9 -0
- data/tracks/objective-c/exercises/luhn/LuhnExample.m +50 -0
- data/tracks/objective-c/exercises/luhn/LuhnTest.m +80 -0
- data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +18 -0
- data/tracks/php/config.json +397 -382
- data/tracks/php/exercises/binary-search/binary-search_test.php +58 -0
- data/tracks/php/exercises/binary-search/example.php +21 -0
- data/tracks/php/exercises/nth-prime/example.php +19 -0
- data/tracks/php/exercises/nth-prime/nth-prime_test.php +31 -0
- data/tracks/php/exercises/pascals-triangle/example.php +28 -0
- data/tracks/php/exercises/pascals-triangle/pascals-triangle_test.php +42 -0
- data/tracks/python/exercises/difference-of-squares/difference_of_squares_test.py +9 -12
- data/tracks/r/docs/INSTALLATION.md +2 -6
- data/tracks/rust/exercises/difference-of-squares/Cargo.toml +1 -1
- data/tracks/rust/exercises/difference-of-squares/tests/difference-of-square.rs +24 -6
- data/tracks/typescript/config.json +6 -0
- data/tracks/typescript/exercises/raindrops/package.json +36 -0
- data/tracks/typescript/exercises/raindrops/raindrops.example.ts +17 -0
- data/tracks/typescript/exercises/raindrops/raindrops.test.ts +38 -0
- data/tracks/typescript/exercises/raindrops/tsconfig.json +21 -0
- data/tracks/typescript/exercises/raindrops/tslint.json +127 -0
- data/tracks/typescript/exercises/raindrops/yarn.lock +2739 -0
- metadata +20 -3
- data/tracks/lisp/bin/cl-travis-install.sh +0 -325
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cc8feb981bb581bf3e184bc80c36e688a053780
|
4
|
+
data.tar.gz: 99ba32cbd4a8150d8e61cd98529c24e0b9e84560
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ff2e026ea8852d5d536b4c2e2438fe61d73a7f0a3fa5f7722960f9a78425178b9aff48121fbce323625b136869339cf0f2edf407fe56cd72c47c2b3892fce52
|
7
|
+
data.tar.gz: d96344f2ceb0c6e8179c1b23c5f1c914ecf329e7ab49a8fc0bcd6afae2e41c304296c1a26efe5414d1eea88df30ed6ed9d924f6364c09610c7f4ff302c4483f4
|
data/lib/trackler/version.rb
CHANGED
@@ -15,7 +15,7 @@ public void Lowercase_words()
|
|
15
15
|
}
|
16
16
|
|
17
17
|
[Fact(Skip = "Remove to run test")]
|
18
|
-
public void
|
18
|
+
public void PascalCase()
|
19
19
|
{
|
20
20
|
Assert.Equal("HTML", Acronym.Abbreviate("HyperText Markup Language"));
|
21
21
|
}
|
@@ -43,4 +43,4 @@ public void Hyphenated()
|
|
43
43
|
{
|
44
44
|
Assert.Equal("CMOS", Acronym.Abbreviate("Complementary metal-oxide semiconductor"));
|
45
45
|
}
|
46
|
-
}
|
46
|
+
}
|
@@ -66,7 +66,8 @@
|
|
66
66
|
"two-bucket",
|
67
67
|
"diamond",
|
68
68
|
"isogram",
|
69
|
-
"all-your-base"
|
69
|
+
"all-your-base",
|
70
|
+
"connect"
|
70
71
|
],
|
71
72
|
"exercises": [
|
72
73
|
{
|
@@ -440,6 +441,12 @@
|
|
440
441
|
"difficulty": 1,
|
441
442
|
"topics": [
|
442
443
|
]
|
444
|
+
},
|
445
|
+
{
|
446
|
+
"slug": "connect",
|
447
|
+
"difficulty": 7,
|
448
|
+
"topics": [
|
449
|
+
]
|
443
450
|
}
|
444
451
|
],
|
445
452
|
"deprecated": [
|
@@ -0,0 +1,110 @@
|
|
1
|
+
import Board from './connect';
|
2
|
+
|
3
|
+
describe('Judging a game of connect', () => {
|
4
|
+
|
5
|
+
it("an empty board has no winner", () => {
|
6
|
+
let board = [
|
7
|
+
". . . . .",
|
8
|
+
" . . . . .",
|
9
|
+
" . . . . .",
|
10
|
+
" . . . . .",
|
11
|
+
" . . . . ."
|
12
|
+
];
|
13
|
+
expect(new Board(board).winner()).toEqual("");
|
14
|
+
});
|
15
|
+
|
16
|
+
xit("X can win on a 1x1 board", () => {
|
17
|
+
let board = [
|
18
|
+
"X"
|
19
|
+
];
|
20
|
+
expect(new Board(board).winner()).toEqual("X");
|
21
|
+
});
|
22
|
+
|
23
|
+
xit("O can win on a 1x1 board", () => {
|
24
|
+
let board = [
|
25
|
+
"O"
|
26
|
+
];
|
27
|
+
expect(new Board(board).winner()).toEqual("O");
|
28
|
+
});
|
29
|
+
|
30
|
+
xit( "only edges does not make a winner", () => {
|
31
|
+
let board = [
|
32
|
+
"O O O X",
|
33
|
+
" X . . X",
|
34
|
+
" X . . X",
|
35
|
+
" X O O O"
|
36
|
+
];
|
37
|
+
expect(new Board(board).winner()).toEqual("");
|
38
|
+
});
|
39
|
+
|
40
|
+
xit("illegal diagonal does not make a winner", () => {
|
41
|
+
let board = [
|
42
|
+
"X O . .",
|
43
|
+
" O X X X",
|
44
|
+
" O X O .",
|
45
|
+
" . O X .",
|
46
|
+
" X X O O"
|
47
|
+
];
|
48
|
+
expect(new Board(board).winner()).toEqual("");
|
49
|
+
});
|
50
|
+
|
51
|
+
xit("nobody wins crossing adjacent angles", () => {
|
52
|
+
let board = [
|
53
|
+
"X . . .",
|
54
|
+
" . X O .",
|
55
|
+
" O . X O",
|
56
|
+
" . O . X",
|
57
|
+
" . . O ."
|
58
|
+
];
|
59
|
+
expect(new Board(board).winner()).toEqual("");
|
60
|
+
});
|
61
|
+
|
62
|
+
xit("X wins crossing from left to right", () => {
|
63
|
+
let board = [
|
64
|
+
". O . .",
|
65
|
+
" O X X X",
|
66
|
+
" O X O .",
|
67
|
+
" X X O X",
|
68
|
+
" . O X ."
|
69
|
+
];
|
70
|
+
expect(new Board(board).winner()).toEqual("X");
|
71
|
+
});
|
72
|
+
|
73
|
+
xit("O wins crossing from top to bottom", () => {
|
74
|
+
let board = [
|
75
|
+
". O . .",
|
76
|
+
" O X X X",
|
77
|
+
" O O O .",
|
78
|
+
" X X O X",
|
79
|
+
" . O X ."
|
80
|
+
];
|
81
|
+
expect(new Board(board).winner()).toEqual("O");
|
82
|
+
});
|
83
|
+
|
84
|
+
xit("X wins using a convoluted path", () => {
|
85
|
+
let board = [
|
86
|
+
". X X . .",
|
87
|
+
" X . X . X",
|
88
|
+
" . X . X .",
|
89
|
+
" . X X . .",
|
90
|
+
" O O O O O"
|
91
|
+
];
|
92
|
+
expect(new Board(board).winner()).toEqual("X");
|
93
|
+
});
|
94
|
+
|
95
|
+
xit("X wins using a spiral path", () => {
|
96
|
+
let board = [
|
97
|
+
"O X X X X X X X X",
|
98
|
+
" O X O O O O O O O",
|
99
|
+
" O X O X X X X X O",
|
100
|
+
" O X O X O O O X O",
|
101
|
+
" O X O X X X O X O",
|
102
|
+
" O X O O O X O X O",
|
103
|
+
" O X X X X X O X O",
|
104
|
+
" O O O O O O O X O",
|
105
|
+
" X X X X X X X X O"
|
106
|
+
];
|
107
|
+
expect(new Board(board).winner()).toEqual("X");
|
108
|
+
});
|
109
|
+
|
110
|
+
});
|
@@ -0,0 +1,68 @@
|
|
1
|
+
/**
|
2
|
+
* "Player O" plays from top to bottom, "Player X" plays from left to right.
|
3
|
+
* @param board
|
4
|
+
*/
|
5
|
+
export default class {
|
6
|
+
constructor(board) {
|
7
|
+
this.board = board.map((b) => [...b]);
|
8
|
+
}
|
9
|
+
winner() {
|
10
|
+
const players = ['X','O'];
|
11
|
+
for(let player of players) {
|
12
|
+
if(this.checkWin(player)) {
|
13
|
+
return player;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
return "";
|
17
|
+
}
|
18
|
+
checkWin(player) {
|
19
|
+
let positions = this.startPositions(player);
|
20
|
+
for(let position of positions) {
|
21
|
+
if(this.search(position, player,[])) {
|
22
|
+
return true;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
return false;
|
26
|
+
}
|
27
|
+
search(pos, XorO, checked) {
|
28
|
+
if(! this.matches(pos, XorO)) {
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
if(this.winningSpot(pos, XorO)) {
|
32
|
+
return true;
|
33
|
+
}
|
34
|
+
checked = checked.slice(0);
|
35
|
+
checked.push(pos);
|
36
|
+
const matches = this.neighbors(pos).filter(({x,y}) => {
|
37
|
+
return this.matches({x,y}, XorO) && checked.filter((spot) => spot.x === x && spot.y === y).length === 0;
|
38
|
+
});
|
39
|
+
if(matches.length === 0) return false;
|
40
|
+
return matches.filter(spot => this.search(spot, XorO, checked)).length > 0;
|
41
|
+
}
|
42
|
+
neighbors({x,y}) {
|
43
|
+
return [
|
44
|
+
{x, y: y + 2},
|
45
|
+
{x, y: y - 2},
|
46
|
+
|
47
|
+
{x: x + 1, y: y + 1},
|
48
|
+
{x: x - 1, y: y + 1},
|
49
|
+
|
50
|
+
{x: x + 1, y: y - 1},
|
51
|
+
{x: x - 1, y: y - 1}
|
52
|
+
];
|
53
|
+
}
|
54
|
+
startPositions(XorO) {
|
55
|
+
return XorO === "X" ?
|
56
|
+
this.board.map((pos, i) => ({x:i,y:i})) :
|
57
|
+
this.board[0].map((pos, i) => ({x:0, y:i}));
|
58
|
+
}
|
59
|
+
winningSpot({x,y},XorO) {
|
60
|
+
return XorO === "X" ?
|
61
|
+
y === this.board[0].length - 1 + x:
|
62
|
+
x === this.board.length - 1;
|
63
|
+
}
|
64
|
+
matches({x,y}, XorO) {
|
65
|
+
return this.board[x] !== undefined && this.board[x][y] === XorO;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
@@ -0,0 +1,82 @@
|
|
1
|
+
{
|
2
|
+
"name": "xecmascript",
|
3
|
+
"version": "0.0.0",
|
4
|
+
"description": "Exercism exercises in ECMAScript 6.",
|
5
|
+
"author": "Katrina Owen",
|
6
|
+
"private": true,
|
7
|
+
"repository": {
|
8
|
+
"type": "git",
|
9
|
+
"url": "https://github.com/exercism/xecmascript"
|
10
|
+
},
|
11
|
+
"devDependencies": {
|
12
|
+
"babel-jest": "^19.0.0",
|
13
|
+
"babel-preset-env": "^1.3.3",
|
14
|
+
"eslint": "^3.19.0",
|
15
|
+
"jest": "^19.0.2"
|
16
|
+
},
|
17
|
+
"jest": {
|
18
|
+
"modulePathIgnorePatterns": [
|
19
|
+
"package.json"
|
20
|
+
]
|
21
|
+
},
|
22
|
+
"babel": {
|
23
|
+
"presets": [
|
24
|
+
"env"
|
25
|
+
]
|
26
|
+
},
|
27
|
+
"scripts": {
|
28
|
+
"test": "jest --no-cache ./*",
|
29
|
+
"watch": "jest --no-cache --watch ./*",
|
30
|
+
"lint": "eslint *.js; exit 0;",
|
31
|
+
"lint-test": "eslint *.js && jest --no-cache ./* "
|
32
|
+
},
|
33
|
+
"eslintConfig": {
|
34
|
+
"parserOptions": {
|
35
|
+
"ecmaVersion": 6,
|
36
|
+
"sourceType": "module"
|
37
|
+
},
|
38
|
+
"rules": {
|
39
|
+
"comma-dangle": [
|
40
|
+
2,
|
41
|
+
"never"
|
42
|
+
],
|
43
|
+
"no-cond-assign": [
|
44
|
+
2,
|
45
|
+
"always"
|
46
|
+
],
|
47
|
+
"no-console": 2,
|
48
|
+
"no-constant-condition": 2,
|
49
|
+
"no-control-regex": 2,
|
50
|
+
"no-debugger": 2,
|
51
|
+
"no-dupe-args": 2,
|
52
|
+
"no-dupe-keys": 2,
|
53
|
+
"no-duplicate-case": 2,
|
54
|
+
"no-empty-character-class": 2,
|
55
|
+
"no-empty": 2,
|
56
|
+
"no-ex-assign": 2,
|
57
|
+
"no-extra-boolean-cast": 2,
|
58
|
+
"no-extra-parens": 2,
|
59
|
+
"no-extra-semi": 2,
|
60
|
+
"no-func-assign": 2,
|
61
|
+
"no-inner-declarations": [
|
62
|
+
2,
|
63
|
+
"both"
|
64
|
+
],
|
65
|
+
"no-invalid-regexp": 2,
|
66
|
+
"no-irregular-whitespace": 2,
|
67
|
+
"no-negated-in-lhs": 2,
|
68
|
+
"no-obj-calls": 2,
|
69
|
+
"no-regex-spaces": 2,
|
70
|
+
"no-sparse-arrays": 2,
|
71
|
+
"no-unexpected-multiline": 2,
|
72
|
+
"no-unreachable": 2,
|
73
|
+
"use-isnan": 2,
|
74
|
+
"valid-jsdoc": 2,
|
75
|
+
"valid-typeof": 2
|
76
|
+
}
|
77
|
+
},
|
78
|
+
"licenses": [
|
79
|
+
"MIT"
|
80
|
+
],
|
81
|
+
"dependencies": {}
|
82
|
+
}
|
@@ -12,19 +12,18 @@ specs :: Spec
|
|
12
12
|
specs = do
|
13
13
|
|
14
14
|
describe "squareOfSums" $ do
|
15
|
+
it "square of sum 1" $ squareOfSums 1 `shouldBe` 1
|
15
16
|
it "square of sum 5" $ squareOfSums 5 `shouldBe` 225
|
16
|
-
it "square of sum 10" $ squareOfSums 10 `shouldBe` 3025
|
17
17
|
it "square of sum 100" $ squareOfSums 100 `shouldBe` 25502500
|
18
18
|
|
19
19
|
describe "sumOfSquares" $ do
|
20
|
+
it "sum of squares 1" $ sumOfSquares 1 `shouldBe` 1
|
20
21
|
it "sum of squares 5" $ sumOfSquares 5 `shouldBe` 55
|
21
|
-
it "sum of squares 10" $ sumOfSquares 10 `shouldBe` 385
|
22
22
|
it "sum of squares 100" $ sumOfSquares 100 `shouldBe` 338350
|
23
23
|
|
24
24
|
describe "differenceOfSquares" $ do
|
25
|
-
it "difference of squares
|
25
|
+
it "difference of squares 1" $ difference 1 `shouldBe` 0
|
26
26
|
it "difference of squares 5" $ difference 5 `shouldBe` 170
|
27
|
-
it "difference of squares 10" $ difference 10 `shouldBe` 2640
|
28
27
|
it "difference of squares 100" $ difference 100 `shouldBe` 25164150
|
29
28
|
|
30
29
|
-- Track-specific tests.
|
@@ -7,7 +7,7 @@ import java.util.Arrays;
|
|
7
7
|
|
8
8
|
import static org.junit.Assert.assertArrayEquals;
|
9
9
|
|
10
|
-
public
|
10
|
+
public class BaseConverterTest {
|
11
11
|
|
12
12
|
/*
|
13
13
|
* See https://github.com/junit-team/junit4/wiki/Rules for information on JUnit Rules in general and
|
@@ -5,7 +5,7 @@ import static org.junit.Assert.assertEquals;
|
|
5
5
|
import static org.junit.Assert.assertFalse;
|
6
6
|
import static org.junit.Assert.assertTrue;
|
7
7
|
|
8
|
-
public
|
8
|
+
public class BracketCheckerTest {
|
9
9
|
|
10
10
|
@Test
|
11
11
|
public void testPairedSquareBrackets() {
|
@@ -6,7 +6,7 @@ import org.junit.rules.ExpectedException;
|
|
6
6
|
|
7
7
|
import static org.junit.Assert.assertEquals;
|
8
8
|
|
9
|
-
public
|
9
|
+
public class WordProblemSolverTest {
|
10
10
|
|
11
11
|
/*
|
12
12
|
* See https://github.com/junit-team/junit4/wiki/Rules for information on JUnit Rules in general and
|
data/tracks/lisp/.travis.yml
CHANGED
@@ -3,34 +3,32 @@ language: lisp
|
|
3
3
|
|
4
4
|
env:
|
5
5
|
matrix:
|
6
|
-
- LISP=sbcl
|
7
|
-
- LISP=ccl
|
6
|
+
- LISP=sbcl-bin
|
7
|
+
- LISP=ccl-bin
|
8
8
|
- LISP=ecl
|
9
9
|
- LISP=clisp
|
10
|
-
- LISP=abcl
|
11
|
-
- LISP=
|
12
|
-
- LISP=
|
13
|
-
- LISP=
|
14
|
-
# - LISP=allegro
|
15
|
-
# - LISP=cmucl
|
10
|
+
- LISP=abcl-bin
|
11
|
+
- LISP=allegro
|
12
|
+
# - LISP=clasp
|
13
|
+
# - LISP=cmu-bin
|
16
14
|
|
17
15
|
matrix:
|
18
16
|
fast_finish: true
|
19
17
|
allow_failures:
|
20
|
-
- env: LISP=abcl
|
21
|
-
- env: LISP=
|
22
|
-
- env: LISP=
|
23
|
-
- env: LISP=
|
18
|
+
- env: LISP=abcl-bin
|
19
|
+
- env: LISP=allegro
|
20
|
+
# - env: LISP=cmu-bin
|
21
|
+
# - env: LISP=clasp
|
24
22
|
|
25
23
|
install:
|
26
|
-
-
|
24
|
+
- curl -L 'https://raw.githubusercontent.com/snmsts/roswell/release/scripts/install-for-ci.sh' | sh
|
27
25
|
|
28
26
|
before_script:
|
29
27
|
- bin/fetch-configlet
|
30
28
|
- bin/configlet .
|
31
29
|
|
32
30
|
script:
|
33
|
-
-
|
31
|
+
- ros run -l 'bin/xlisp-test.lisp' -e '(xlisp-test:travis-build)' -q
|
34
32
|
|
35
33
|
# Cut and paste above to run all tests locally.
|
36
34
|
|
data/tracks/lisp/README.md
CHANGED
@@ -50,25 +50,18 @@ All changes will be built under several implementations via the
|
|
50
50
|
to be able to run at least some of those same builds locally before
|
51
51
|
submitting the changes.
|
52
52
|
|
53
|
-
A contributor will need to install
|
54
|
-
[CIM](https://github.com/KeenS/CIM),
|
55
|
-
[QuickLisp](https://www.quicklisp.org/beta/), and a few Lisp
|
56
|
-
implementations.
|
53
|
+
A contributor will need to install:
|
57
54
|
|
58
|
-
|
55
|
+
* [Roswell](https://github.com/roswell/roswell)
|
56
|
+
* [QuickLisp](https://www.quicklisp.org/beta/)
|
57
|
+
* and a few Lisp implementations.
|
59
58
|
|
60
|
-
Instructions for installing CIM can be found in its
|
61
|
-
[README](https://github.com/KeenS/CIM#install). The simplest form is:
|
62
59
|
|
63
|
-
|
64
|
-
curl -L https://raw.github.com/KeenS/CIM/master/scripts/cim_installer | /bin/sh
|
65
|
-
cim config sh >> ~/.bashrc
|
66
|
-
```
|
60
|
+
###### Roswell
|
67
61
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
multi-implementation installation and upgrade system.
|
62
|
+
Instructions for installing Roswell can be found in
|
63
|
+
its
|
64
|
+
[README](https://github.com/roswell/roswell#installation-dependency--usage).
|
72
65
|
|
73
66
|
###### Lisp Implementations
|
74
67
|
|
@@ -76,33 +69,13 @@ It is beyond the scope of this document to describe how to install
|
|
76
69
|
different Lisp implementations. Please find those instructions on
|
77
70
|
those implementations' websites.
|
78
71
|
|
79
|
-
After installing Lisp implementations. Check that
|
80
|
-
running `
|
81
|
-
suffixed with `-system` (designating that CIM did not install them).
|
82
|
-
Then to ensure CIM can use them properly run:
|
83
|
-
|
84
|
-
```
|
85
|
-
for i in `cim list use`; do cim use $i; done
|
86
|
-
```
|
72
|
+
After installing Lisp implementations. Check that Roswell can see them by
|
73
|
+
running `ros list installed`.
|
87
74
|
|
88
75
|
###### QuickLisp
|
89
76
|
|
90
|
-
|
91
|
-
|
92
|
-
these instructions will install the QuickLisp system into
|
93
|
-
`~/.quicklisp`.
|
94
|
-
|
95
|
-
To ensure CIM and all your implementations know and use QuickLisp you
|
96
|
-
can run the following commands:
|
97
|
-
|
98
|
-
```
|
99
|
-
ln ~/quicklisp ~/.cim/quicklisp
|
100
|
-
cim for all do -l ~/.quicklisp/setup.lisp -e '(ql:add-to-init-file)'
|
101
|
-
```
|
102
|
-
|
103
|
-
(the last command will, for each implementation, install QuickLisp
|
104
|
-
setup code into that implementation's startup file. It will prompt the
|
105
|
-
user for confirmation before doing so.
|
77
|
+
Although [QuickLisp](https://www.quicklisp.org/beta/) is
|
78
|
+
required, Roswell will install and configure it for you, by default.
|
106
79
|
|
107
80
|
##### Creating a new exercise.
|
108
81
|
|
@@ -120,16 +93,11 @@ Travis build. This build will run all exercises on many Common Lisp
|
|
120
93
|
implementations. To run the build yourself on your implementation load
|
121
94
|
`bin/xlisp-test.lisp` and then evaluate `(xlisp-test:full-build)`.
|
122
95
|
|
123
|
-
If
|
124
|
-
can be done with (this will return with a non-zero
|
125
|
-
are problems):
|
126
|
-
|
127
|
-
cl -f bin/xlisp-test.lisp -e '(xlisp-test:travis-build)'
|
128
|
-
|
129
|
-
To run all the tests for *all* the implementations use this command
|
130
|
-
line:
|
96
|
+
If Roswell is installed then running all the tests for one
|
97
|
+
implementation can be done with (this will return with a non-zero
|
98
|
+
error code if there are problems):
|
131
99
|
|
132
|
-
|
100
|
+
ros run -l 'bin/xlisp-test.lisp' -e '(xlisp-test:travis-build)' -q
|
133
101
|
|
134
102
|
##### Style Guidelines
|
135
103
|
|