code: function assertCollectionSize(n) {
      assertIsIterable(this._obj);
  
      const { size } = this._obj;
      new Assertion(size).a('number');
  
      this.assert(
        size === n,
        'expected #{this} to have size #{exp} but got #{act}',
        'expected #{this} to not have size #{act}',
        n,
        size
      );
    }
docs: ### .size(value)
  
  Asserts that the immutable collection has the expected size.
  
  ```js
  expect(List.of(1, 2, 3)).to.have.size(3);
  ```
  
  It can also be used as a chain precursor to a value comparison for the
  `size` property.
  
  ```js
  expect(List.of(1, 2, 3)).to.have.size.least(3);
  expect(List.of(1, 2, 3)).to.have.size.most(3);
  expect(List.of(1, 2, 3)).to.have.size.above(2);
  expect(List.of(1, 2, 3)).to.have.size.below(4);
  expect(List.of(1, 2, 3)).to.have.size.within(2,4);
  ```
  
  Similarly to `length`/`lengthOf`, `sizeOf` is an alias of `size`:
  
  ```js
  expect(List.of(1, 2, 3)).to.have.sizeOf(3);
  ```
  
  @name size
  @alias sizeOf
  @param {Number} size
  @namespace BDD
  @api public