jssm 5.35.4 → 5.42.0

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 (93) hide show
  1. package/.codeclimate.yml +22 -22
  2. package/.editorconfig +12 -12
  3. package/.eslintrc +20 -20
  4. package/.nycrc +6 -6
  5. package/.travis.yml +8 -8
  6. package/LICENSE.md +21 -21
  7. package/README.md +997 -993
  8. package/dist/es6/jssm-dot.d.ts +6 -6
  9. package/dist/es6/jssm-dot.js +1 -1
  10. package/dist/es6/jssm.d.ts +100 -100
  11. package/dist/es6/jssm.js +792 -792
  12. package/dist/es6/jssm_types.d.ts +151 -151
  13. package/dist/es6/jssm_types.js +1 -1
  14. package/dist/es6/jssm_util.d.ts +8 -8
  15. package/dist/es6/jssm_util.js +34 -34
  16. package/dist/es6/version.d.ts +2 -2
  17. package/dist/es6/version.js +2 -2
  18. package/dist/jssm.es5.cjs.js +1 -1
  19. package/dist/jssm.es5.iife.js +1 -0
  20. package/jest-spec.config.js +27 -27
  21. package/jest-stoch.config.js +27 -27
  22. package/jssm-dot.d.ts +6 -6
  23. package/jssm.d.ts +100 -100
  24. package/jssm_types.d.ts +151 -151
  25. package/jssm_util.d.ts +8 -8
  26. package/package.json +125 -122
  27. package/rollup.config.iife.js +44 -44
  28. package/rollup.config.js +44 -44
  29. package/src/demo/index.html +38 -38
  30. package/src/demo/style.css +1 -1
  31. package/src/ts/jssm-dot.peg +928 -874
  32. package/src/ts/jssm.ts +1120 -1120
  33. package/src/ts/jssm_types.ts +346 -346
  34. package/src/ts/jssm_util.ts +100 -100
  35. package/src/ts/tests/actions.spec.ts +167 -167
  36. package/src/ts/tests/arrange.spec.ts +72 -72
  37. package/src/ts/tests/arrange.stoch.ts +4 -4
  38. package/src/ts/tests/array_box_if_string.spec.ts +30 -31
  39. package/src/ts/tests/array_transitions.spec.ts +129 -129
  40. package/src/ts/tests/arrow unicode.spec.ts +88 -88
  41. package/src/ts/tests/arrow.spec.ts +124 -124
  42. package/src/ts/tests/colors.spec.ts +58 -58
  43. package/src/ts/tests/comment.spec.ts +134 -134
  44. package/src/ts/tests/compile.spec.ts +79 -79
  45. package/src/ts/tests/constants.spec.ts +98 -98
  46. package/src/ts/tests/cycles.spec.ts +153 -153
  47. package/src/ts/tests/dot_preamble.spec.ts +16 -16
  48. package/src/ts/tests/embedded_sm.spec.ts +36 -36
  49. package/src/ts/tests/flow.spec.ts +22 -22
  50. package/src/ts/tests/forced transitions.spec.ts +26 -26
  51. package/src/ts/tests/general.spec.ts +933 -933
  52. package/src/ts/tests/graph node lists.spec.ts +21 -21
  53. package/src/ts/tests/histo.spec.ts +24 -24
  54. package/src/ts/tests/hooks.spec.ts +28 -0
  55. package/src/ts/tests/language.spec.ts +37 -37
  56. package/src/ts/tests/language_data/belarussian.json +13 -13
  57. package/src/ts/tests/language_data/bengali.json +15 -15
  58. package/src/ts/tests/language_data/emoji.json +21 -21
  59. package/src/ts/tests/language_data/english.json +16 -16
  60. package/src/ts/tests/language_data/french.json +16 -16
  61. package/src/ts/tests/language_data/german.json +16 -16
  62. package/src/ts/tests/language_data/hebrew.json +16 -16
  63. package/src/ts/tests/language_data/portuguese.json +12 -12
  64. package/src/ts/tests/language_data/russian.json +12 -12
  65. package/src/ts/tests/language_data/spanish.json +17 -17
  66. package/src/ts/tests/language_data/ukrainian.json +18 -18
  67. package/src/ts/tests/layout.spec.ts +29 -29
  68. package/src/ts/tests/machine_attributes.spec.ts +398 -398
  69. package/src/ts/tests/machine_name.spec.ts +14 -14
  70. package/src/ts/tests/named lists.spec.ts +24 -19
  71. package/src/ts/tests/nominated states.spec.ts +133 -133
  72. package/src/ts/tests/parse actions.spec.ts +32 -32
  73. package/src/ts/tests/parse.spec.ts +94 -94
  74. package/src/ts/tests/probability.spec.ts +146 -146
  75. package/src/ts/tests/r639.spec.ts +27 -27
  76. package/src/ts/tests/sample_select.spec.ts +173 -173
  77. package/src/ts/tests/seq.spec.ts +14 -16
  78. package/src/ts/tests/seq.stoch.ts +83 -0
  79. package/src/ts/tests/shapes.spec.ts +63 -63
  80. package/src/ts/tests/sm_tag.spec.ts +37 -37
  81. package/src/ts/tests/special characters.spec.ts +39 -39
  82. package/src/ts/tests/state_declaration.spec.ts +214 -200
  83. package/src/ts/tests/state_style.spec.ts +82 -39
  84. package/src/ts/tests/stop light.spec.ts +157 -157
  85. package/src/ts/tests/stripes.spec.ts +52 -52
  86. package/src/ts/tests/theme.spec.ts +45 -45
  87. package/src/ts/tests/weighted_histo_key.spec.ts +22 -22
  88. package/src/ts/tests/weighted_rand_select.spec.ts +27 -27
  89. package/src/ts/tests/weighted_sample_select.spec.ts +24 -26
  90. package/src/ts/version.ts +1 -1
  91. package/tree.txt +1794 -1794
  92. package/tsconfig.json +27 -27
  93. package/version.d.ts +2 -2
@@ -1,21 +1,21 @@
1
-
2
- /* eslint-disable max-len */
3
-
4
- import { sm } from '../jssm';
5
-
6
-
7
-
8
-
9
-
10
- describe('graph node lists', () => {
11
-
12
- test('start states don\'t throw', () => expect( () => { const _a = sm`start_states: [a b c]; a->b->c->d;`; }).not.toThrow() );
13
- test('end states don\'t throw', () => expect( () => { const _a = sm`end_states: [a b c]; a->b->c->d;`; }).not.toThrow() );
14
-
15
- test.todo('start node overrides');
16
-
17
- // comeback whargarbl
18
- // const overrider = make(` a->b->c; start_nodes: [c]; `);
19
- // it('start nodes override initial node', t => t.is(0, () => {}) );
20
-
21
- });
1
+
2
+ /* eslint-disable max-len */
3
+
4
+ import { sm } from '../jssm';
5
+
6
+
7
+
8
+
9
+
10
+ describe('graph node lists', () => {
11
+
12
+ test('start states don\'t throw', () => expect( () => { const _a = sm`start_states: [a b c]; a->b->c->d;`; }).not.toThrow() );
13
+ test('end states don\'t throw', () => expect( () => { const _a = sm`end_states: [a b c]; a->b->c->d;`; }).not.toThrow() );
14
+
15
+ test.todo('start node overrides');
16
+
17
+ // comeback whargarbl
18
+ // const overrider = make(` a->b->c; start_nodes: [c]; `);
19
+ // it('start nodes override initial node', t => t.is(0, () => {}) );
20
+
21
+ });
@@ -1,24 +1,24 @@
1
-
2
- import * as jssm from '../jssm';
3
-
4
-
5
-
6
-
7
-
8
- describe('histograph/1', () => {
9
-
10
- test('([]) generates Map()', () =>
11
- expect( jssm.histograph([]) ).toEqual( new Map( ) ) );
12
-
13
- test('([1]) generates Map([[1,1]])', () =>
14
- expect( jssm.histograph([1]) ).toEqual( new Map( [[1,1]] ) ) );
15
-
16
- test('([1,2]) generates Map([[1,1],[2,1]])', () =>
17
- expect( jssm.histograph([1,2]) ).toEqual( new Map( [[1,1],[2,1]] ) ) );
18
-
19
- test('([1,1,2]) generates Map([[1,2],[2,1]])', () =>
20
- expect( jssm.histograph([1,1,2]) ).toEqual( new Map( [[1,2],[2,1]] ) ) );
21
-
22
- });
23
-
24
- // stochable
1
+
2
+ import * as jssm from '../jssm';
3
+
4
+
5
+
6
+
7
+
8
+ describe('histograph/1', () => {
9
+
10
+ test('([]) generates Map()', () =>
11
+ expect( jssm.histograph([]) ).toEqual( new Map( ) ) );
12
+
13
+ test('([1]) generates Map([[1,1]])', () =>
14
+ expect( jssm.histograph([1]) ).toEqual( new Map( [[1,1]] ) ) );
15
+
16
+ test('([1,2]) generates Map([[1,1],[2,1]])', () =>
17
+ expect( jssm.histograph([1,2]) ).toEqual( new Map( [[1,1],[2,1]] ) ) );
18
+
19
+ test('([1,1,2]) generates Map([[1,2],[2,1]])', () =>
20
+ expect( jssm.histograph([1,1,2]) ).toEqual( new Map( [[1,2],[2,1]] ) ) );
21
+
22
+ });
23
+
24
+ // stochable
@@ -0,0 +1,28 @@
1
+
2
+ import { sm } from '../jssm';
3
+
4
+
5
+
6
+
7
+
8
+ describe('Hooks', () => {
9
+
10
+
11
+
12
+ test.todo('Hooks open doesn\'t throw' /*, () => {
13
+
14
+ expect( () => { const _foo = sm`hooks: open; a -> b;`; })
15
+ .not.toThrow();
16
+
17
+ } */);
18
+
19
+ test.todo('Hooks closed doesn\'t throw' /*, () => {
20
+
21
+ expect( () => { const _foo = sm`hooks: closed; a -> b;`; })
22
+ .not.toThrow();
23
+
24
+ } */);
25
+
26
+
27
+
28
+ });
@@ -1,37 +1,37 @@
1
-
2
- /* eslint-disable max-len */
3
-
4
- import { sm } from '../jssm';
5
-
6
- const glob = require('glob'),
7
-
8
- language_files = glob.sync('./src/ts/tests/language_data/*.json', {}) // for some reason glob is project-relative
9
- .map(rel => rel.replace('/src/ts/tests', '')); // instead of execution relative like i'd expect
10
-
11
-
12
-
13
-
14
-
15
- describe('base data walk/1', () => {
16
-
17
- language_files.map( (language_file, i) => {
18
-
19
- const testData = require(language_file),
20
- testTokens = testData.cases;
21
-
22
- const foreignTarget = sm`${testData.native_name} -> ${testData.english_name} -> ${testTokens.join(' -> ')};`;
23
-
24
- describe(`language ${i} "${testData.english_name}" contains all states`, () => {
25
-
26
- testTokens.map(tok =>
27
- test(tok, () =>
28
- expect( foreignTarget.states().includes(tok) ).toBe(true)
29
- )
30
- );
31
-
32
- });
33
-
34
- });
35
-
36
-
37
- });
1
+
2
+ /* eslint-disable max-len */
3
+
4
+ import { sm } from '../jssm';
5
+
6
+ const glob = require('glob'),
7
+
8
+ language_files = glob.sync('./src/ts/tests/language_data/*.json', {}) // for some reason glob is project-relative
9
+ .map(rel => rel.replace('/src/ts/tests', '')); // instead of execution relative like i'd expect
10
+
11
+
12
+
13
+
14
+
15
+ describe('base data walk/1', () => {
16
+
17
+ language_files.map( (language_file, i) => {
18
+
19
+ const testData = require(language_file),
20
+ testTokens = testData.cases;
21
+
22
+ const foreignTarget = sm`${testData.native_name} -> ${testData.english_name} -> ${testTokens.join(' -> ')};`;
23
+
24
+ describe(`language ${i} "${testData.english_name}" contains all states`, () => {
25
+
26
+ testTokens.map(tok =>
27
+ test(tok, () =>
28
+ expect( foreignTarget.states().includes(tok) ).toBe(true)
29
+ )
30
+ );
31
+
32
+ });
33
+
34
+ });
35
+
36
+
37
+ });
@@ -1,14 +1,14 @@
1
- {
2
-
3
- "native_name" : "Беларускі",
4
- "english_name" : "Belorussian",
5
-
6
-
7
- "cases" : [
8
- "all_letters_абвгґдеёжзійклмнопрстуўфхцчшыьэюяАБВГҐДЕЁЖЗІЙКЛМНОПРСТУЎФХЦЧШІЬЄЮЯ",
9
- "all_digits_0123456789",
10
- "accents_’",
11
- "common_symbols_!»№,.?+=_*#"
12
- ]
13
-
1
+ {
2
+
3
+ "native_name" : "Беларускі",
4
+ "english_name" : "Belorussian",
5
+
6
+
7
+ "cases" : [
8
+ "all_letters_абвгґдеёжзійклмнопрстуўфхцчшыьэюяАБВГҐДЕЁЖЗІЙКЛМНОПРСТУЎФХЦЧШІЬЄЮЯ",
9
+ "all_digits_0123456789",
10
+ "accents_’",
11
+ "common_symbols_!»№,.?+=_*#"
12
+ ]
13
+
14
14
  }
@@ -1,16 +1,16 @@
1
- {
2
-
3
- "native_name" : "বাংলা",
4
- "english_name" : "Bengali",
5
-
6
- "cases" : [
7
- "সংখ্যা_১০_দিয়ে_শেষ_হয়",
8
- "মাঝখানে_সংখ্যা_১০",
9
- "সংখ্যা_১০_দিয়ে_শুরু_হয়",
10
-
11
- "সব_বর্ণমালা_অআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহড়ঢ়য়ৎংঁ",
12
- "উচ্চারণ_ািীুূৃৄেৈোৌ্",
13
- "সাধারণ_চিহ্ন_।!@#$^&*()?.,=+#"
14
- ]
15
-
1
+ {
2
+
3
+ "native_name" : "বাংলা",
4
+ "english_name" : "Bengali",
5
+
6
+ "cases" : [
7
+ "সংখ্যা_১০_দিয়ে_শেষ_হয়",
8
+ "মাঝখানে_সংখ্যা_১০",
9
+ "সংখ্যা_১০_দিয়ে_শুরু_হয়",
10
+
11
+ "সব_বর্ণমালা_অআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহড়ঢ়য়ৎংঁ",
12
+ "উচ্চারণ_ািীুূৃৄেৈোৌ্",
13
+ "সাধারণ_চিহ্ন_।!@#$^&*()?.,=+#"
14
+ ]
15
+
16
16
  }
@@ -1,22 +1,22 @@
1
- {
2
-
3
- "native_name" : "😜",
4
- "english_name" : "Emoji",
5
-
6
- "cases" : [
7
-
8
- "😂_ends_with_number_10",
9
- "🙄middle_10_number",
10
- "10_starts_with_number😰",
11
-
12
- "all_basic_faces_😀😃😄😁😆😅😂🤣😊😇🙂🙃😉😌😍😘😗😙😚😋😜😝😛🤑🤗🤓😎🤡🤠😏😒😞😔😟😕🙁☹️😣😖😫😩😤😠😡😶😐😑😯😦😧😮😲😵😳😱😨😰😢😥🤤😭😓😪😴🙄🤔🤥😬🤐🤢🤧😷🤒🤕",
13
- "all_extras_😈👿👹👺💩👻💀☠️👽👾🤖🎃😺😸😹😻😼😽🙀😿😾👐🙌👏🙏🤝👍👎👊✊🤛🤜🤞✌️🤘👌👈👉👆👇☝️✋🤚🖐🖖👋🤙💪🖕✍️🤳💅🖖💄💋👄👅👂👃👣👁👀🗣👤👥👶👦👧👨👩👱‍👱👴👵👲👳‍♀️👳👮‍♀️👮👷‍♀️👷💂‍♀️💂🕵️‍♀️🕵️👩‍⚕️👨‍⚕️👩‍🌾👨‍🌾👩‍🍳👨‍🍳👩‍🎓👨‍🎓👩‍🎤👨‍🎤👩‍🏫👨‍🏫👩‍🏭👨‍🏭👩‍💻👨‍💻👩‍💼👨‍💼👩‍🔧👨‍🔧👩‍🔬👨‍🔬👩‍🎨👨‍🎨👩‍🚒👨‍🚒👩‍✈️👨‍✈️👩‍🚀👨‍🚀👩‍⚖️👨‍⚖️🤶🎅👸🤴👰🤵👼🤰🙇‍♀️🙇💁💁‍♂️🙅🙅‍♂️🙆🙆‍♂️🙋🙋‍♂️🤦‍♀️🤦‍♂️🤷‍♀️🤷‍♂️🙎🙎‍♂️🙍🙍‍♂️💇💇‍♂️💆💆‍♂️🕴💃🕺👯👯‍♂️🚶‍♀️🚶🏃‍♀️🏃👫👭👬💑👩‍❤️‍👩👨‍❤️‍👨💏👩‍❤️‍💋‍👩👨‍❤️‍💋‍👨👪",
14
- "groups_👨‍👩‍👧👨‍👩‍👧‍👦👨‍👩‍👦‍👦👨‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧👩‍👩‍👧‍👦👩‍👩‍👦‍👦👩‍👩‍👧‍👧👨‍👨‍👦👨‍👨‍👧👨‍👨‍👧‍👦👨‍👨‍👦‍👦👨‍👨‍👧‍👧👩‍👦👩‍👧👩‍👧‍👦👩‍👦‍👦👩‍👧‍👧👨‍👦👨‍👧👨‍👧‍👦👨‍👦‍👦👨‍👧‍👧",
15
- "misc_👚👕👖👔👗👙👘👠👡👢👞👟👒🎩🎓👑⛑🎒👝👛👜💼👓🕶🌂",
16
- "animals_🐶🐱🐭🐹🐰🦊🐻🐼🐨🐯🦁🐮🐷🐽🐸🐵🙊🙉🙊🐒🐔🐧🐦🐤🐣🐥🦆🦅🦉🦇🐺🐗🐴🦄🐝🐛🦋🐌🐚🐞🐜🕷🕸🐢🐍🦎🦂🦀🦑🐙🦐🐠🐟🐡🐬🦈🐳🐋🐊🐆🐅🐃🐂🐄🦌🐪🐫🐘🦏🦍🐎🐖🐐🐏🐑🐕🐩🐈🐓🦃🕊🐇🐁🐀🐿🐾🐉🐲",
17
- "plants_🌵🎄🌲🌳🌴🌱🌿☘️🍀🎍🎋🍃🍂🍁🍄🌾💐🌷🌹🥀🌻🌼🌸🌺",
18
- "planets_and_weather_🌎🌍🌏🌕🌖🌗🌘🌑🌒🌓🌔🌚🌝🌞🌛🌜🌙💫⭐️🌟✨⚡️🔥💥☄️☀️🌤⛅️🌥🌦🌈☁️🌧⛈🌩🌨☃️⛄️❄️🌬💨🌪🌫🌊💧💦☔"
19
-
20
- ]
21
-
1
+ {
2
+
3
+ "native_name" : "😜",
4
+ "english_name" : "Emoji",
5
+
6
+ "cases" : [
7
+
8
+ "😂_ends_with_number_10",
9
+ "🙄middle_10_number",
10
+ "10_starts_with_number😰",
11
+
12
+ "all_basic_faces_😀😃😄😁😆😅😂🤣😊😇🙂🙃😉😌😍😘😗😙😚😋😜😝😛🤑🤗🤓😎🤡🤠😏😒😞😔😟😕🙁☹️😣😖😫😩😤😠😡😶😐😑😯😦😧😮😲😵😳😱😨😰😢😥🤤😭😓😪😴🙄🤔🤥😬🤐🤢🤧😷🤒🤕",
13
+ "all_extras_😈👿👹👺💩👻💀☠️👽👾🤖🎃😺😸😹😻😼😽🙀😿😾👐🙌👏🙏🤝👍👎👊✊🤛🤜🤞✌️🤘👌👈👉👆👇☝️✋🤚🖐🖖👋🤙💪🖕✍️🤳💅🖖💄💋👄👅👂👃👣👁👀🗣👤👥👶👦👧👨👩👱‍👱👴👵👲👳‍♀️👳👮‍♀️👮👷‍♀️👷💂‍♀️💂🕵️‍♀️🕵️👩‍⚕️👨‍⚕️👩‍🌾👨‍🌾👩‍🍳👨‍🍳👩‍🎓👨‍🎓👩‍🎤👨‍🎤👩‍🏫👨‍🏫👩‍🏭👨‍🏭👩‍💻👨‍💻👩‍💼👨‍💼👩‍🔧👨‍🔧👩‍🔬👨‍🔬👩‍🎨👨‍🎨👩‍🚒👨‍🚒👩‍✈️👨‍✈️👩‍🚀👨‍🚀👩‍⚖️👨‍⚖️🤶🎅👸🤴👰🤵👼🤰🙇‍♀️🙇💁💁‍♂️🙅🙅‍♂️🙆🙆‍♂️🙋🙋‍♂️🤦‍♀️🤦‍♂️🤷‍♀️🤷‍♂️🙎🙎‍♂️🙍🙍‍♂️💇💇‍♂️💆💆‍♂️🕴💃🕺👯👯‍♂️🚶‍♀️🚶🏃‍♀️🏃👫👭👬💑👩‍❤️‍👩👨‍❤️‍👨💏👩‍❤️‍💋‍👩👨‍❤️‍💋‍👨👪",
14
+ "groups_👨‍👩‍👧👨‍👩‍👧‍👦👨‍👩‍👦‍👦👨‍👩‍👧‍👧👩‍👩‍👦👩‍👩‍👧👩‍👩‍👧‍👦👩‍👩‍👦‍👦👩‍👩‍👧‍👧👨‍👨‍👦👨‍👨‍👧👨‍👨‍👧‍👦👨‍👨‍👦‍👦👨‍👨‍👧‍👧👩‍👦👩‍👧👩‍👧‍👦👩‍👦‍👦👩‍👧‍👧👨‍👦👨‍👧👨‍👧‍👦👨‍👦‍👦👨‍👧‍👧",
15
+ "misc_👚👕👖👔👗👙👘👠👡👢👞👟👒🎩🎓👑⛑🎒👝👛👜💼👓🕶🌂",
16
+ "animals_🐶🐱🐭🐹🐰🦊🐻🐼🐨🐯🦁🐮🐷🐽🐸🐵🙊🙉🙊🐒🐔🐧🐦🐤🐣🐥🦆🦅🦉🦇🐺🐗🐴🦄🐝🐛🦋🐌🐚🐞🐜🕷🕸🐢🐍🦎🦂🦀🦑🐙🦐🐠🐟🐡🐬🦈🐳🐋🐊🐆🐅🐃🐂🐄🦌🐪🐫🐘🦏🦍🐎🐖🐐🐏🐑🐕🐩🐈🐓🦃🕊🐇🐁🐀🐿🐾🐉🐲",
17
+ "plants_🌵🎄🌲🌳🌴🌱🌿☘️🍀🎍🎋🍃🍂🍁🍄🌾💐🌷🌹🥀🌻🌼🌸🌺",
18
+ "planets_and_weather_🌎🌍🌏🌕🌖🌗🌘🌑🌒🌓🌔🌚🌝🌞🌛🌜🌙💫⭐️🌟✨⚡️🔥💥☄️☀️🌤⛅️🌥🌦🌈☁️🌧⛈🌩🌨☃️⛄️❄️🌬💨🌪🌫🌊💧💦☔"
19
+
20
+ ]
21
+
22
22
  }
@@ -1,17 +1,17 @@
1
- {
2
-
3
- "native_name" : "English",
4
- "english_name" : "English",
5
-
6
- "cases" : [
7
- "ends_with_number_10",
8
- "middle_10_number",
9
- "10_starts_with_number",
10
-
11
- "all_letters_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
- "all_digits_0123456789",
13
- "accents_éÉëïöËÏÖæÆœŒß",
14
- "common_symbols_!@#$^&*()?.,=+#"
15
- ]
16
-
1
+ {
2
+
3
+ "native_name" : "English",
4
+ "english_name" : "English",
5
+
6
+ "cases" : [
7
+ "ends_with_number_10",
8
+ "middle_10_number",
9
+ "10_starts_with_number",
10
+
11
+ "all_letters_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
+ "all_digits_0123456789",
13
+ "accents_éÉëïöËÏÖæÆœŒß",
14
+ "common_symbols_!@#$^&*()?.,=+#"
15
+ ]
16
+
17
17
  }
@@ -1,17 +1,17 @@
1
- {
2
-
3
- "native_name" : "Français",
4
- "english_name" : "French",
5
-
6
- "cases" : [
7
- "termine_par_un_nombre_10",
8
- "nombre_10_milieu",
9
- "10_commence_par_un_nombre",
10
-
11
- "toutes_les_lettres_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
- "tous_les_chiffres_0123456789",
13
- "accents_àâäçéèêëîïôöùûüÿÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸ",
14
- "symboles_communs_!@#$^&*()?.,=+#"
15
- ]
16
-
1
+ {
2
+
3
+ "native_name" : "Français",
4
+ "english_name" : "French",
5
+
6
+ "cases" : [
7
+ "termine_par_un_nombre_10",
8
+ "nombre_10_milieu",
9
+ "10_commence_par_un_nombre",
10
+
11
+ "toutes_les_lettres_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
+ "tous_les_chiffres_0123456789",
13
+ "accents_àâäçéèêëîïôöùûüÿÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸ",
14
+ "symboles_communs_!@#$^&*()?.,=+#"
15
+ ]
16
+
17
17
  }
@@ -1,17 +1,17 @@
1
- {
2
-
3
- "native_name" : "Deutsch",
4
- "english_name" : "German",
5
-
6
- "cases" : [
7
- "endet_mit_nummer_10",
8
- "mittlere_10_nummer",
9
- "10_beginnt_mit_die_nummer",
10
-
11
- "all_letters_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
- "all_digits_0123456789",
13
- "accents_ÄäÖöÜüëïẞßſ",
14
- "common_symbols_!@#$€^&*()?.,=+#„“‚‘«»‹›§"
15
- ]
16
-
1
+ {
2
+
3
+ "native_name" : "Deutsch",
4
+ "english_name" : "German",
5
+
6
+ "cases" : [
7
+ "endet_mit_nummer_10",
8
+ "mittlere_10_nummer",
9
+ "10_beginnt_mit_die_nummer",
10
+
11
+ "all_letters_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
+ "all_digits_0123456789",
13
+ "accents_ÄäÖöÜüëïẞßſ",
14
+ "common_symbols_!@#$€^&*()?.,=+#„“‚‘«»‹›§"
15
+ ]
16
+
17
17
  }
@@ -1,16 +1,16 @@
1
- {
2
-
3
- "native_name" : "עברית",
4
- "english_name" : "English",
5
-
6
- "cases" : [
7
- "נגמר_במספר_10",
8
- "אמצע_10_מספר",
9
- "10_מתחיל_במספר",
10
-
11
- "all_letters_אבגדהוזחטיכךלמםנןסעפףצץקרשת",
12
- "all_digits_0123456789",
13
- "common_symbols_!@#$^&*()?.,=+#"
14
- ]
15
-
16
- }
1
+ {
2
+
3
+ "native_name" : "עברית",
4
+ "english_name" : "English",
5
+
6
+ "cases" : [
7
+ "נגמר_במספר_10",
8
+ "אמצע_10_מספר",
9
+ "10_מתחיל_במספר",
10
+
11
+ "all_letters_אבגדהוזחטיכךלמםנןסעפףצץקרשת",
12
+ "all_digits_0123456789",
13
+ "common_symbols_!@#$^&*()?.,=+#"
14
+ ]
15
+
16
+ }
@@ -1,13 +1,13 @@
1
- {
2
-
3
- "native_name" : "Português",
4
- "english_name" : "Portuguese",
5
-
6
- "cases" : [
7
- "all_letters_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
8
- "all_digits_0123456789",
9
- "accents_éÉëïöËÏÖæÆœŒßçÇáàãâéêíìôõóú",
10
- "common_symbols_!@#$^&*?.,=+#"
11
- ]
12
-
1
+ {
2
+
3
+ "native_name" : "Português",
4
+ "english_name" : "Portuguese",
5
+
6
+ "cases" : [
7
+ "all_letters_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
8
+ "all_digits_0123456789",
9
+ "accents_éÉëïöËÏÖæÆœŒßçÇáàãâéêíìôõóú",
10
+ "common_symbols_!@#$^&*?.,=+#"
11
+ ]
12
+
13
13
  }
@@ -1,13 +1,13 @@
1
- {
2
-
3
- "native_name" : "Русский",
4
- "english_name" : "Russian",
5
-
6
-
7
- "cases" : [
8
- "all_letters_абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
9
- "all_digits_0123456789",
10
- "common_symbols_!«»№,.?+=_*#"
11
- ]
12
-
1
+ {
2
+
3
+ "native_name" : "Русский",
4
+ "english_name" : "Russian",
5
+
6
+
7
+ "cases" : [
8
+ "all_letters_абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
9
+ "all_digits_0123456789",
10
+ "common_symbols_!«»№,.?+=_*#"
11
+ ]
12
+
13
13
  }
@@ -1,17 +1,17 @@
1
- {
2
-
3
- "native_name" : "Español",
4
- "english_name" : "Spanish",
5
-
6
- "cases" : [
7
- "termina_con_número_10",
8
- "medio_10_número",
9
- "10_empieza_con_número",
10
-
11
- "todas_las_letras_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
- "todos_los_dígitos_0123456789",
13
- "acentos_ñáéíóúÑÁÉÍÓÚ",
14
- "símbolos_comunes_!¡@#$^&*()?¿.,=+#"
15
- ]
16
-
17
- }
1
+ {
2
+
3
+ "native_name" : "Español",
4
+ "english_name" : "Spanish",
5
+
6
+ "cases" : [
7
+ "termina_con_número_10",
8
+ "medio_10_número",
9
+ "10_empieza_con_número",
10
+
11
+ "todas_las_letras_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
12
+ "todos_los_dígitos_0123456789",
13
+ "acentos_ñáéíóúÑÁÉÍÓÚ",
14
+ "símbolos_comunes_!¡@#$^&*()?¿.,=+#"
15
+ ]
16
+
17
+ }
@@ -1,19 +1,19 @@
1
- {
2
-
3
- "native_name" : "Українська",
4
- "english_name" : "Ukrainian",
5
-
6
-
7
- "cases" : [
8
- "ends_with_number_10",
9
- "middle_10_number",
10
- "10_starts_with_number",
11
-
12
- "all_letters_абгґдеєжзиіїйклмнопрстуфхцчшщьюяАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ",
13
- "all_digits_0123456789",
14
- "accents_’",
15
-
16
- "common_symbols_!«»№,.?+=_*#"
17
- ]
18
-
1
+ {
2
+
3
+ "native_name" : "Українська",
4
+ "english_name" : "Ukrainian",
5
+
6
+
7
+ "cases" : [
8
+ "ends_with_number_10",
9
+ "middle_10_number",
10
+ "10_starts_with_number",
11
+
12
+ "all_letters_абгґдеєжзиіїйклмнопрстуфхцчшщьюяАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ",
13
+ "all_digits_0123456789",
14
+ "accents_’",
15
+
16
+ "common_symbols_!«»№,.?+=_*#"
17
+ ]
18
+
19
19
  }
@@ -1,29 +1,29 @@
1
-
2
- /* eslint-disable max-len */
3
-
4
- import { sm } from '../jssm';
5
-
6
-
7
-
8
-
9
-
10
- describe('graph attributes don\'t throw', () => {
11
-
12
- const machine = sm`graph_layout: circo; a->b->c->d->e->f->a;`;
13
-
14
- test('layout is circo', () => expect(machine.graph_layout()).toBe('circo') );
15
-
16
- });
17
-
18
-
19
-
20
-
21
-
22
- describe('error catchery', () => {
23
-
24
- test('double graph_layout throws', () =>
25
- expect( () => {
26
- const _machine = sm`graph_layout: circo; graph_layout: circo; a->b->c->d->e->f->a;`;
27
- } ).toThrow() );
28
-
29
- });
1
+
2
+ /* eslint-disable max-len */
3
+
4
+ import { sm } from '../jssm';
5
+
6
+
7
+
8
+
9
+
10
+ describe('graph attributes don\'t throw', () => {
11
+
12
+ const machine = sm`graph_layout: circo; a->b->c->d->e->f->a;`;
13
+
14
+ test('layout is circo', () => expect(machine.graph_layout()).toBe('circo') );
15
+
16
+ });
17
+
18
+
19
+
20
+
21
+
22
+ describe('error catchery', () => {
23
+
24
+ test('double graph_layout throws', () =>
25
+ expect( () => {
26
+ const _machine = sm`graph_layout: circo; graph_layout: circo; a->b->c->d->e->f->a;`;
27
+ } ).toThrow() );
28
+
29
+ });