// Unit Tests
// ==========


// Get Number
// ----------
@include describe('get-number [function]') {
  @include it('Absolute') {
    @include assert-equal(
      _get-number('px'),
      0px
    );
  }

  @include it('Not Absolute') {
    @include assert-false(_get-number('ch'));
  }

  @include it('Relative') {
    @include assert-equal(
      _get-number('ch', 'relative'),
      0ch
    );
  }

  @include it('Not Known') {
    @include assert-false(_get-number('wtf'));
  }
}


// Convert Length
// --------------
@include describe('convert-units [function]') {
  @include it('Converts px size to browser em size') {
    @include assert-equal(
      convert-units(24px, 'browser-ems'),
      1.5em
    );
  }

  @include it('Converts rem size to browser em size') {
    @include assert-equal(
      convert-units(2rem, 'browser-ems'),
      2.5em
    );
  }

  @include it('No conversion for equal units') {
    @include assert-equal(
      convert-units(6em, 'em'),
      6em
    );
  }

  @include it('Convert px to em') {
    @include assert-equal(
      convert-units(30px, 'em'),
      1.5em
    );
  }

  @include it('Convert px to %') {
    @include assert-equal(
      convert-units(16px, '%', $to-context: 1600px),
      1%
    );
  }

  @include it('Convert em to %') {
    @include assert-equal(
      convert-units(1.35em, '%', $to-context: 600px),
      4.5%
    );
  }

  @include it('Convert px to ex') {
    @include assert-equal(
      convert-units(30px, 'ex'),
      3ex
    );
  }

  @include it('Convert % to px') {
    @include assert-equal(
      convert-units(150%, 'px', 18px),
      27px
    );
  }

  @include it('Convert px to rem') {
    @include assert-equal(
      convert-units(1px, 'rem'),
      0.05rem
    );
  }

  @include it('Convert em to mm') {
    @include assert-equal(
      convert-units(2em, 'mm', 18px),
      9.525mm
    );
  }

  @include it('Convert rem to px') {
    @include assert-equal(
      convert-units(1rem, 'px'),
      20px
    );
  }

  @include it('Convert to nothing') {
    @include assert-equal(
      convert-units(16vw, ''),
      16
    );
  }

  @include it('Convert nothing to vw') {
    @include assert-equal(
      convert-units(16, 'vw'),
      16vw
    );
  }

  @include it('Convert em to browser-em') {
    @include assert-equal(
      convert-units(2em, 'browser-ems', $from-context: 20px),
      2.5em
    );
  }

  @include it('Convert a named size based on named context') {
    @include assert-equal(
      convert-units('rhythm', 'browser-ems', 'root'),
      1.875em
    );
  }
}
