diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-08-30 16:30:23 -0400 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-08-30 16:30:23 -0400 |
commit | 5b77a409c912f7251da8c170bd4a3aa8826d989b (patch) | |
tree | 0b3131a6a1c87b7a3af3537d4d548392866bb812 /__tests__ | |
parent | 7efea0582dda35cd7dc0c370ef3b56c84b2f2291 (diff) |
Implement again under
Diffstat (limited to '__tests__')
-rw-r--r-- | __tests__/dice.test.js | 24 | ||||
-rw-r--r-- | __tests__/lexer.test.js | 10 | ||||
-rw-r--r-- | __tests__/parser.test.js | 10 |
3 files changed, 44 insertions, 0 deletions
diff --git a/__tests__/dice.test.js b/__tests__/dice.test.js index d4e2802..272f436 100644 --- a/__tests__/dice.test.js +++ b/__tests__/dice.test.js @@ -12,6 +12,7 @@ const { keepHigh, keepLow, again, + againUnder, threshold } = require('../src/dice.js') @@ -579,6 +580,29 @@ describe('again', () => { } }) }) + + describe('1a1d6', () => { + const die = againUnder(constant(1), d(constant(1), constant(6))) + + testDie(die, { + variableDiceCount: { + min: 1, + max: Infinity + }, + average: { + average: 4.2 + }, + variance: { + variance: 2.24 + }, + bounds: { + low: 2, + high: Infinity, + expectLow: true, + expectHigh: false + } + }) + }) }) describe('threshold', () => { diff --git a/__tests__/lexer.test.js b/__tests__/lexer.test.js index 0336f44..25ef816 100644 --- a/__tests__/lexer.test.js +++ b/__tests__/lexer.test.js @@ -203,6 +203,16 @@ describe('lex', () => { { type: 'constant', value: 6 } ]) }) + + test('6a3d6', () => { + expect(lex('6a3d6')).toEqual([ + { type: 'constant', value: 6 }, + { type: 'a' }, + { type: 'constant', value: 3 }, + { type: 'd' }, + { type: 'constant', value: 6 } + ]) + }) }) describe('threshold', () => { diff --git a/__tests__/parser.test.js b/__tests__/parser.test.js index 765388d..ad67fc4 100644 --- a/__tests__/parser.test.js +++ b/__tests__/parser.test.js @@ -219,6 +219,16 @@ describe('parse', () => { right: { type: 'constant', value: 10 } } }) + + expect(parse('10a3d10')).toEqual({ + type: 'a', + left: { type: 'constant', value: 10 }, + right: { + type: 'd', + left: { type: 'constant', value: 3 }, + right: { type: 'constant', value: 10 } + } + }) }) it('parases dice with threshold', () => { |