1 |
|
2 |
|
3 | var Lab = require('lab');
|
4 | var Confidence = require('../');
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | var internals = {};
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | var lab = exports.lab = Lab.script();
|
15 | var expect = Lab.expect;
|
16 | var before = lab.before;
|
17 | var after = lab.after;
|
18 | var describe = lab.experiment;
|
19 | var it = lab.test;
|
20 |
|
21 |
|
22 | describe('Confidence', function () {
|
23 |
|
24 | describe('Id', function () {
|
25 |
|
26 | it('generates an id', function (done) {
|
27 |
|
28 | var id = Confidence.id.generate();
|
29 | expect(id.length).to.equal(36);
|
30 | done();
|
31 | });
|
32 |
|
33 | it('generates 1000 unique ids', function (done) {
|
34 |
|
35 | var ids = {};
|
36 | for (var i = 0; i < 1000; ++i) {
|
37 | var id = Confidence.id.generate();
|
38 | expect(ids[id]).to.not.exist;
|
39 | expect(id.length).to.equal(36);
|
40 | ids[id] = true;
|
41 | }
|
42 | done();
|
43 | });
|
44 |
|
45 | it('converts id to criteria', function (done) {
|
46 |
|
47 | var id = 'a44f476c-1326-499e-9cf9-2111c31670d8';
|
48 | var criteria = Confidence.id.criteria(id);
|
49 | expect(criteria.random.a).to.equal(22);
|
50 | expect(criteria.random.b).to.equal(17);
|
51 | expect(criteria.random.c).to.equal(68);
|
52 | expect(criteria.random.d).to.equal(73);
|
53 | expect(criteria.random.e).to.equal(24);
|
54 | expect(criteria.random.f).to.equal(36);
|
55 | expect(criteria.random.g).to.equal(52);
|
56 | expect(criteria.random.h).to.equal(15);
|
57 | expect(criteria.random.i).to.equal(48);
|
58 | expect(criteria.random.j).to.equal(71);
|
59 | expect(criteria.random.k).to.equal(7);
|
60 | expect(criteria.random.l).to.equal(69);
|
61 | expect(criteria.random.m).to.equal(81);
|
62 | expect(criteria.random.n).to.equal(3);
|
63 | done();
|
64 | });
|
65 |
|
66 | it('returns null criteria on invalid id length', function (done) {
|
67 |
|
68 | var id = 'a44f476c-1326-499e-9cf9-2111c31670d';
|
69 | var criteria = Confidence.id.criteria(id);
|
70 | expect(criteria).to.equal(null);
|
71 | done();
|
72 | });
|
73 |
|
74 | it('returns null criteria on out of range left random segment', function (done) {
|
75 |
|
76 | var id = 'a44f476c-1326-499e-9cf9-ffffff000000';
|
77 | var criteria = Confidence.id.criteria(id);
|
78 | expect(criteria).to.equal(null);
|
79 | done();
|
80 | });
|
81 |
|
82 | it('returns null criteria on out of range right random segment', function (done) {
|
83 |
|
84 | var id = 'a44f476c-1326-499e-9cf9-000000ffffff';
|
85 | var criteria = Confidence.id.criteria(id);
|
86 | expect(criteria).to.equal(null);
|
87 | done();
|
88 | });
|
89 | });
|
90 | });
|