m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/__tests__
diff options
context:
space:
mode:
authorMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2017-08-30 16:25:34 -0400
committerMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2017-08-30 16:25:34 -0400
commit7efea0582dda35cd7dc0c370ef3b56c84b2f2291 (patch)
treeb6c3560651564cb335a52b3980c8e28b4e78326b /__tests__
parentca6103457d9a4bb7e11a406f689ed1de46720781 (diff)
Implement explode under
Diffstat (limited to '__tests__')
-rw-r--r--__tests__/dice.test.js19
-rw-r--r--__tests__/lexer.test.js10
-rw-r--r--__tests__/parser.test.js10
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', () => {