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