Skip to content

Commit 6ee37dc

Browse files
committed
throw error when set lenght is incorrect
1 parent b507033 commit 6ee37dc

14 files changed

+1106
-762
lines changed

.DS_Store

6 KB
Binary file not shown.

Cargo.lock

+669-510
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+22-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,30 @@
44

55
Core game logic for generalset.io
66

7-
rust-wasm intro
7+
## rust-wasm docs
8+
89
```
910
https://rustwasm.github.io/book/
1011
```
1112

12-
build
13+
## Test
14+
15+
```
16+
cargo test
17+
```
18+
19+
## Demo
20+
21+
```
22+
yarn
23+
yarn serve
24+
```
25+
26+
goto http://localhost:8080/
27+
open console for tests
28+
29+
## Create Release
30+
31+
```
32+
yarn build
1333
```
14-
https://rustwasm.github.io/wasm-pack/book/commands/build.html
15-
```

demo/app.js

+8-12
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,20 @@ function assertEq(a, b) {
99
}
1010

1111

12+
13+
1214
let set = Set.new(4, 3);
1315
assertEq(
1416
set.init_deck(),
1517
'0_0_0_0,0_0_0_1,0_0_0_2,0_0_1_0,0_0_1_1,0_0_1_2,0_0_2_0,0_0_2_1,0_0_2_2,0_1_0_0,0_1_0_1,0_1_0_2,0_1_1_0,0_1_1_1,0_1_1_2,0_1_2_0,0_1_2_1,0_1_2_2,0_2_0_0,0_2_0_1,0_2_0_2,0_2_1_0,0_2_1_1,0_2_1_2,0_2_2_0,0_2_2_1,0_2_2_2,1_0_0_0,1_0_0_1,1_0_0_2,1_0_1_0,1_0_1_1,1_0_1_2,1_0_2_0,1_0_2_1,1_0_2_2,1_1_0_0,1_1_0_1,1_1_0_2,1_1_1_0,1_1_1_1,1_1_1_2,1_1_2_0,1_1_2_1,1_1_2_2,1_2_0_0,1_2_0_1,1_2_0_2,1_2_1_0,1_2_1_1,1_2_1_2,1_2_2_0,1_2_2_1,1_2_2_2,2_0_0_0,2_0_0_1,2_0_0_2,2_0_1_0,2_0_1_1,2_0_1_2,2_0_2_0,2_0_2_1,2_0_2_2,2_1_0_0,2_1_0_1,2_1_0_2,2_1_1_0,2_1_1_1,2_1_1_2,2_1_2_0,2_1_2_1,2_1_2_2,2_2_0_0,2_2_0_1,2_2_0_2,2_2_1_0,2_2_1_1,2_2_1_2,2_2_2_0,2_2_2_1,2_2_2_2'
1618
);
1719

18-
assertEq(set.is_set('0_0_0_0,1_1_1_1,2_2_2_2'), true);
19-
assertEq(set.is_set('0_0_0_1,1_1_1_1,2_2_2_1'), true);
20-
assertEq(set.is_set('0_0_0_1,1_1_1_1,2_2_2_2'), false);
20+
try {
21+
set.is_set('0_0_0_0,1_1_1_1');
22+
console.error("this should throw an error")
23+
} catch(e) {
24+
assertEq(true, true);
25+
}
2126

2227
assertEq(
2328
set.hint(
@@ -26,12 +31,3 @@ assertEq(
2631
'0_2_1_2,2_2_1_0,1_2_1_1'
2732
);
2833

29-
const board = set.update_board(
30-
'2_0_1_1,1_1_1_0,2_1_0_1,2_2_0_0,1_2_0_0,1_1_1_2,1_2_0_2,2_2_0_1,0_1_0_0',
31-
''
32-
)
33-
assertEq(board.sets, 2);
34-
assertEq(board.get_deck(), '');
35-
assertEq(board.get_board(), '');
36-
37-
// assertEq(board.get_board(), '0_2_1_2,2_2_1_0,1_2_1_1,2_0_1_1,1_1_1_0,2_1_0_1,2_2_0_0,1_2_0_0,1_1_1_2,1_2_0_2,2_2_0_1,0_1_0_0');

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
"scripts": {
1616
"build-dev": "wasm-pack build --dev && rm pkg/.gitignore",
1717
"build-prod": "wasm-pack build --release && rm pkg/.gitignore",
18-
"build": "npm run build-prod",
19-
"preserve": "npm run build-dev",
18+
"build": "yarn build-prod",
19+
"preserve": "yarn build-dev",
2020
"serve": "cd demo && webpack-dev-server"
2121
}
2222
}

pkg/README.md

+22-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,30 @@
44

55
Core game logic for generalset.io
66

7-
rust-wasm intro
7+
## rust-wasm docs
8+
89
```
910
https://rustwasm.github.io/book/
1011
```
1112

12-
build
13+
## Test
14+
15+
```
16+
cargo test
17+
```
18+
19+
## Demo
20+
21+
```
22+
yarn
23+
yarn serve
24+
```
25+
26+
goto http://localhost:8080/
27+
open console for tests
28+
29+
## Create Release
30+
31+
```
32+
yarn build
1333
```
14-
https://rustwasm.github.io/wasm-pack/book/commands/build.html
15-
```

pkg/set.d.ts

+53-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,61 @@
11
/* tslint:disable */
2+
/* eslint-disable */
3+
/**
4+
* @returns {number}
5+
*/
26
export function random_f64(): number;
7+
/**
8+
*/
39
export class Set {
410
free(): void;
5-
board_size: number;
6-
number_of_features: number;
7-
feature_options: number;
8-
sets: number;
9-
static new(arg0: number, arg1: number): Set;
11+
/**
12+
* @param {number} number_of_features
13+
* @param {number} feature_options
14+
* @returns {Set}
15+
*/
16+
static new(number_of_features: number, feature_options: number): Set;
17+
/**
18+
* @returns {string}
19+
*/
1020
init_deck(): string;
11-
is_set(arg0: string): boolean;
12-
hint(arg0: string): string;
13-
update_board(arg0: string, arg1: string): Set;
21+
/**
22+
* @param {string} ids
23+
* @returns {boolean}
24+
*/
25+
is_set(ids: string): boolean;
26+
/**
27+
* @param {string} board
28+
* @returns {string}
29+
*/
30+
hint(board: string): string;
31+
/**
32+
* @param {string} deck
33+
* @param {string} board
34+
* @returns {Set}
35+
*/
36+
update_board(deck: string, board: string): Set;
37+
/**
38+
* @returns {string}
39+
*/
1440
get_deck(): string;
41+
/**
42+
* @returns {string}
43+
*/
1544
get_board(): string;
45+
/**
46+
* @returns {number}
47+
*/
48+
board_size: number;
49+
/**
50+
* @returns {number}
51+
*/
52+
feature_options: number;
53+
/**
54+
* @returns {number}
55+
*/
56+
number_of_features: number;
57+
/**
58+
* @returns {number}
59+
*/
60+
sets: number;
1661
}

0 commit comments

Comments
 (0)