From e7b6c852d2f6f999454ba2750b9aa2f85a2e52dd Mon Sep 17 00:00:00 2001 From: Philihp Busby Date: Thu, 23 Apr 2020 08:01:37 +0000 Subject: [PATCH] additional tests for coverage --- src/models/thurstonMostellerFull.js | 19 ++++++++----------- test/statistics/v.test.js | 4 ++++ test/statistics/vt.test.js | 16 ++++++++++------ test/statistics/w.test.js | 4 ++++ test/statistics/wt.test.js | 8 ++++++++ 5 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/models/thurstonMostellerFull.js b/src/models/thurstonMostellerFull.js index cc85c59..98e7363 100644 --- a/src/models/thurstonMostellerFull.js +++ b/src/models/thurstonMostellerFull.js @@ -17,21 +17,18 @@ export default (game, _options) => { const sigSqToCiq = iSigmaSq / ciq const gamma = Math.sqrt(iSigmaSq) / ciq - if (qRank > iRank) { + /* istanbul ignore next */ + if (qRank === iRank) { return [ - omega + sigSqToCiq * v(tmp, EPSILON / ciq), - delta + ((gamma * sigSqToCiq) / ciq) * w(tmp, EPSILON / ciq), - ] - } - if (qRank < iRank) { - return [ - omega + -sigSqToCiq * v(-tmp, EPSILON / ciq), - delta + ((gamma * sigSqToCiq) / ciq) * w(-tmp, EPSILON / ciq), + omega + sigSqToCiq * vt(tmp, EPSILON / ciq), + delta + ((gamma * sigSqToCiq) / ciq) * wt(tmp, EPSILON / ciq), ] } + + const sign = qRank > iRank ? 1 : -1 return [ - omega + sigSqToCiq * vt(tmp, EPSILON / ciq), - delta + ((gamma * sigSqToCiq) / ciq) * wt(tmp, EPSILON / ciq), + omega + sign * sigSqToCiq * v(sign * tmp, EPSILON / ciq), + delta + ((gamma * sigSqToCiq) / ciq) * w(sign * tmp, EPSILON / ciq), ] }, [0, 0] diff --git a/test/statistics/v.test.js b/test/statistics/v.test.js index 1d46fcc..3dd8f76 100644 --- a/test/statistics/v.test.js +++ b/test/statistics/v.test.js @@ -12,3 +12,7 @@ test('v(0,2)', (t) => { test('v(0,-1)', (t) => { t.is(v(0, -1), 0.2875999734906994) }) + +test('denominator less than threshold', (t) => { + t.is(v(0, 10), 10) +}) diff --git a/test/statistics/vt.test.js b/test/statistics/vt.test.js index 853aed8..9395a5c 100644 --- a/test/statistics/vt.test.js +++ b/test/statistics/vt.test.js @@ -1,14 +1,18 @@ import test from 'ava' import { vt } from '../../src/statistics' -test('vt(1,2)', (t) => { - t.is(vt(1, 2), -0.2827861132540126) +test('with small b, small x', (t) => { + t.is(vt(-1000, -100), 1100) }) -test('vt(0,2)', (t) => { - t.is(vt(0, 2), 0) +test('with small b, big x', (t) => { + t.is(vt(1000, -100), -1100) }) -test('vt(0,-1)', (t) => { - t.is(vt(0, -1), -1) +test('with big b, small x', (t) => { + t.is(vt(-1000, 1000), 0.7978845368663289) +}) + +test('with big b, big x', (t) => { + t.truthy(vt(0, 1000) < 0.000000001) }) diff --git a/test/statistics/w.test.js b/test/statistics/w.test.js index 863700c..9a72774 100644 --- a/test/statistics/w.test.js +++ b/test/statistics/w.test.js @@ -12,3 +12,7 @@ test('w(0,2)', (t) => { test('w(0,-1)', (t) => { t.is(w(0, -1), 0.3703137182425503) }) + +test('denominator less than threshold', (t) => { + t.is(w(0, 10), 0) +}) diff --git a/test/statistics/wt.test.js b/test/statistics/wt.test.js index b519606..c7435b2 100644 --- a/test/statistics/wt.test.js +++ b/test/statistics/wt.test.js @@ -12,3 +12,11 @@ test('wt(0,2)', (t) => { test('wt(0,-1)', (t) => { t.is(wt(0, -1), 1) }) + +test('wt(0,0)', (t) => { + t.is(wt(0, 0), 1.0) +}) + +test('wt(0,10)', (t) => { + t.truthy(wt(0, 10) < 0.000000000001) +})