diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-08-30 16:25:34 -0400 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-08-30 16:25:34 -0400 |
commit | 7efea0582dda35cd7dc0c370ef3b56c84b2f2291 (patch) | |
tree | b6c3560651564cb335a52b3980c8e28b4e78326b /__tests__ | |
parent | ca6103457d9a4bb7e11a406f689ed1de46720781 (diff) |
Implement explode under
Diffstat (limited to '__tests__')
-rw-r--r-- | __tests__/dice.test.js | 19 | ||||
-rw-r--r-- | __tests__/lexer.test.js | 10 | ||||
-rw-r--r-- | __tests__/parser.test.js | 10 |
3 files changed, 39 insertions, 0 deletions
diff --git a/__tests__/dice.test.js b/__tests__/dice.test.js index 12d9130..d4e2802 100644 --- a/__tests__/dice.test.js +++ b/__tests__/dice.test.js @@ -8,6 +8,7 @@ const { bonusSubtract, negative, explode, + explodeUnder, keepHigh, keepLow, again, @@ -483,6 +484,24 @@ describe('exploding dice', () => { } }) }) + + describe('1e1d6', () => { + const die = explodeUnder(constant(1), d(constant(1), constant(6))) + testDie(die, { + diceCount: 1, + average: { + average: 4.2 + }, + variance: { + variance: 2.24 + }, + bounds: { + low: 2, + expectLow: true, + high: Infinity + } + }) + }) }) describe('keep', () => { diff --git a/__tests__/lexer.test.js b/__tests__/lexer.test.js index 21ae3b0..0336f44 100644 --- a/__tests__/lexer.test.js +++ b/__tests__/lexer.test.js @@ -148,6 +148,16 @@ describe('lex', () => { { type: 'constant', value: 6 } ]) }) + + test('1e1d6', () => { + expect(lex('1e1d6')).toEqual([ + { type: 'constant', value: 1 }, + { type: 'e' }, + { type: 'constant', value: 1 }, + { type: 'd' }, + { type: 'constant', value: 6 } + ]) + }) }) describe('keep', () => { diff --git a/__tests__/parser.test.js b/__tests__/parser.test.js index 70ad98d..765388d 100644 --- a/__tests__/parser.test.js +++ b/__tests__/parser.test.js @@ -173,6 +173,16 @@ describe('parse', () => { right: { type: 'constant', value: 6 } } }) + + expect(parse('1e1d6')).toEqual({ + type: 'e', + left: { type: 'constant', value: 1 }, + right: { + type: 'd', + left: { type: 'constant', value: 1 }, + right: { type: 'constant', value: 6 } + } + }) }) it('parses dice with keep high', () => { |