@include test-module('Utilities') {

  @include test('@function em()') {
    $test: em(24);
    $expected: 1.5em;

    @include assert-equal($test, $expected);
  }

  @include test('@function size()') {
    $test: size(2);
    $expected: 3em;

    @include assert-equal($test, $expected);
  }

  @include test('@function media()') {
    $tests: (small, medium, large);
    $expections: (40em, 64em, 75em);

    @for $index from 1 through length($tests) {
      $test: media(nth($tests, $index));
      $expected: nth($expections, $index);

      @include assert-equal($test, $expected);
    }
  }

  // NOTE: True can't test @media queries yet
  // https://github.com/ericam/true/issues/43
  // @include test('@mixin media()') {
  //   @include assert('outputs a @media object') {
  //     @include input {
  //       @include media(medium) { .test { color: red; } }
  //     }
  //
  //     @include expect {
  //       @media (min-width: 64em) { .test { color: red; } }
  //     }
  //   }
  // }

  // NOTE: can't test the class name
  // @include test('@mixin extender()') {
  //   @include assert('Should create a BEM class') {
  //     @include input {
  //       @include extender(block, element, modifier, $test:true) {
  //         font-family: sans-serif;
  //       }
  //     }
  //
  //     @include expect {
  //       block__element--modifier {
  //         font-family: sans-serif;
  //       }
  //     }
  //   }
  // }

  // NOTE: Can't test extends yet
  // @include test('@mixin extend()') {
  //   @include assert('Should extend a BEM classes') {
  //     @include input {
  //       .test {
  //         @include extend(block, element, modifier, $test:true);
  //       }
  //     }
  //
  //     @include expect {
  //       block__element--modifier, .test {
  //         font-family: sans-serif;
  //       }
  //     }
  //   }
  // }

}
