From 69b48d1a9c4e97d5f71230c75b3cfe6d8453558f Mon Sep 17 00:00:00 2001
From: Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com>
Date: Tue, 11 Jul 2017 12:18:10 -0400
Subject: Add the constant die

---
 __tests__/dice.test.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 48 insertions(+), 4 deletions(-)

(limited to '__tests__')

diff --git a/__tests__/dice.test.js b/__tests__/dice.test.js
index e113c3d..04b1c84 100644
--- a/__tests__/dice.test.js
+++ b/__tests__/dice.test.js
@@ -1,4 +1,4 @@
-const { d, add, subtract } = require('../src/dice.js')
+const { constant, d, add, subtract } = require('../src/dice.js')
 
 const defaultNumberRolls = 500
 const defaultError = 0.2
@@ -182,7 +182,7 @@ const combinedDiceTestSpecs = (dieSpecs) => {
 
 const describeBasicDie = (number, sides, numberRolls = defaultNumberRolls) => {
   describe(`${number}d${sides}`, () => {
-    const die = d(number, sides)
+    const die = d(constant(number), constant(sides))
     testDie(die, basicDieTestSpecs(number, sides), numberRolls)
   })
 }
@@ -200,13 +200,57 @@ const describeCompoundDice = (diceSpecs, numberRolls = defaultNumberRolls) => {
   const dieString = getDieString(diceSpecs)
   const die = diceSpecs.slice(1).reduce((die, spec) => {
     const combinator = spec.negative ? subtract : add
-    return combinator(die, d(spec.number, spec.sides))
-  }, d(diceSpecs[0].number, diceSpecs[0].sides))
+    return combinator(die, d(constant(spec.number), constant(spec.sides)))
+  }, d(constant(diceSpecs[0].number), constant(diceSpecs[0].sides)))
 
   describe(dieString, () => testDie(die, combinedDiceTestSpecs(diceSpecs),
     numberRolls))
 }
 
+describe('constant', () => {
+  describe('1', () => {
+    const die = constant(1)
+    testDie(die, {
+      diceCount: 1,
+      average: { average: 1 },
+      variance: { variance: 0 },
+      bounds: {
+        low: 1,
+        high: 1,
+        expectLow: true,
+      }
+    }, 10)
+  })
+
+  describe('10', () => {
+    const die = constant(10)
+    testDie(die, {
+      diceCount: 1,
+      average: { average: 10 },
+      variance: { variance: 0 },
+      bounds: {
+        low: 10,
+        high: 10,
+        expectLow: true,
+      }
+    }, 10)
+  })
+
+  describe('-5', () => {
+    const die = constant(-5)
+    testDie(die, {
+      diceCount: 1,
+      average: { average: -5 },
+      variance: { variance: 0 },
+      bounds: {
+        low: -5,
+        high: -5,
+        expectLow: true,
+      }
+    }, 10)
+  })
+})
+
 describe('basic dice', () => {
   describeBasicDie(1, 6)
   describeBasicDie(2, 8, 500)
-- 
cgit v1.2.3