UNPKG

infect-frontend

Version:
36 lines (33 loc) 1.6 kB
import test from 'tape'; import ResistanceValue from './resistanceValue'; import resistanceTypes from './resistanceTypes'; test('throws on invalid values', (t) => { t.throws(() => new ResistanceValue(), /not known/); t.throws(() => new ResistanceValue('invalid'), /not known/); t.throws(() => new ResistanceValue('class', -1), /between/); t.throws(() => new ResistanceValue('class', 1.3), /between/); t.throws(() => new ResistanceValue('class', 'text', /number/)); t.throws(() => new ResistanceValue('class', 1, 1.5, /integer/)); t.throws(() => new ResistanceValue('class', 1, 'text', /integer/)); t.end(); }); test('stores type and value correctly', (t) => { const resVal = new ResistanceValue('class', '0.9', 5); t.equal(resVal.value, 0.9); t.equal(resVal.sampleSize, 5); t.equal(resVal.type, resistanceTypes.class); t.end(); }); test('confidence interval', (t) => { t.throws(() => new ResistanceValue('class', 0.9, 5, 'bad'), /array/); t.throws(() => new ResistanceValue('class', 0.9, 5, [1,2,3]), /two items/); t.throws(() => new ResistanceValue('class', 0.9, 5, [1,false]), /numbers/); t.throws(() => new ResistanceValue('class', 0.9, 5, [1,1.1]), /between 0 and 1/); t.throws(() => new ResistanceValue('class', 0.9, 5, [-1,0.9]), /between 0 and 1/); t.throws(() => new ResistanceValue('class', 0.9, 5, [0.8,0.5]), /smaller than/); t.throws(() => new ResistanceValue('class', 0.3, 5, [0.4,0.5]), /embrace/); const valid = new ResistanceValue('class', 0.9, 5, [0.1, 0.9]); t.equals(valid.confidenceInterval[0], 0.1); t.equals(valid.confidenceInterval[1], 0.9); t.end(); });