1
exercism fetch javascript two-bucket

two-bucket.spec.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var TwoBucket = require('./two-bucket');

describe('TwoBucket', function () {
  describe('Measure using bucket one of size 3 and bucket two of size 5', function () {
    var bucketOne = 3;
    var bucketTwo = 5;
    var goal = 1;

    it('start with bucket one', function () {
      var twoBucket = new TwoBucket(bucketOne, bucketTwo, goal, 'one');

      expect(twoBucket.moves()).toEqual(4); // includes the first fill
      expect(twoBucket.goalBucket).toEqual('one'); // which bucket should end up with the desired # of liters
      expect(twoBucket.otherBucket).toEqual(5); // leftover value in the "other" bucket once the goal has been reached
    });

    xit('start with bucket two', function () {
      var twoBucket = new TwoBucket(bucketOne, bucketTwo, goal, 'two');

      expect(twoBucket.moves()).toEqual(8);
      expect(twoBucket.goalBucket).toEqual('two');
      expect(twoBucket.otherBucket).toEqual(3);
    });
  });

  describe('Measure using bucket one of size 7 and bucket two of size 11', function () {
    var bucketOne = 7;
    var bucketTwo = 11;
    var goal = 2;

    xit('start with bucket one', function () {
      var twoBucket = new TwoBucket(bucketOne, bucketTwo, goal, 'one');

      expect(twoBucket.moves()).toEqual(14);
      expect(twoBucket.goalBucket).toEqual('one');
      expect(twoBucket.otherBucket).toEqual(11);
    });

    xit('start with bucket two', function () {
      var twoBucket = new TwoBucket(bucketOne, bucketTwo, goal, 'two');

      expect(twoBucket.moves()).toEqual(18);
      expect(twoBucket.goalBucket).toEqual('two');
      expect(twoBucket.otherBucket).toEqual(7);
    });
  });
});