@include test('inc(..)') {
  $tests: (
    ('1.2.3', 'major'): '2.0.0',
    ('1.2.3', 'minor'): '1.3.0',
    ('1.2.3', 'patch'): '1.2.4',
    //('1.2.3tag', 'major'): '2.0.0',
    ('1.2.3-tag', 'major'): '2.0.0',
    //('1.2.3', 'fake'): null,
    ('1.2.0-0', 'patch'): '1.2.0',
    //('fake', 'major'): null,
    ('1.2.3-4', 'major'): '2.0.0',
    ('1.2.3-4', 'minor'): '1.3.0',
    ('1.2.3-4', 'patch'): '1.2.3',
    ('1.2.3-alpha.0.beta', 'major'): '2.0.0',
    ('1.2.3-alpha.0.beta', 'minor'): '1.3.0',
    ('1.2.3-alpha.0.beta', 'patch'): '1.2.3',
    ('1.2.4', 'prerelease'): '1.2.5-0',
    ('1.2.3-0', 'prerelease'): '1.2.3-1',
    ('1.2.3-alpha.0', 'prerelease'): '1.2.3-alpha.1',
    ('1.2.3-alpha.1', 'prerelease'): '1.2.3-alpha.2',
    ('1.2.3-alpha.2', 'prerelease'): '1.2.3-alpha.3',
    //('1.2.3-alpha.0.beta', 'prerelease'): '1.2.3-alpha.1.beta',
    //('1.2.3-alpha.1.beta', 'prerelease'): '1.2.3-alpha.2.beta',
    //('1.2.3-alpha.2.beta', 'prerelease'): '1.2.3-alpha.3.beta',
    //('1.2.3-alpha.10.0.beta', 'prerelease'): '1.2.3-alpha.10.1.beta',
    //('1.2.3-alpha.10.1.beta', 'prerelease'): '1.2.3-alpha.10.2.beta',
    //('1.2.3-alpha.10.2.beta', 'prerelease'): '1.2.3-alpha.10.3.beta',
    //('1.2.3-alpha.10.beta.0', 'prerelease'): '1.2.3-alpha.10.beta.1',
    //('1.2.3-alpha.10.beta.1', 'prerelease'): '1.2.3-alpha.10.beta.2',
    //('1.2.3-alpha.10.beta.2', 'prerelease'): '1.2.3-alpha.10.beta.3',
    //('1.2.3-alpha.9.beta', 'prerelease'): '1.2.3-alpha.10.beta',
    //('1.2.3-alpha.10.beta', 'prerelease'): '1.2.3-alpha.11.beta',
    //('1.2.3-alpha.11.beta', 'prerelease'): '1.2.3-alpha.12.beta',
    ('1.2.0', 'prepatch'): '1.2.1-0',
    ('1.2.0-1', 'prepatch'): '1.2.1-0',
    ('1.2.0', 'preminor'): '1.3.0-0',
    ('1.2.3-1', 'preminor'): '1.3.0-0',
    ('1.2.0', 'premajor'): '2.0.0-0',
    ('1.2.3-1', 'premajor'): '2.0.0-0',
    //('1.2.0-1', 'minor'): '1.2.0',
    //('1.0.0-1', 'major'): '1.0.0',
  );

  @each $test, $expect in $tests {
    @include assert-equal(inc($test...), $expect, 'Increments a version.');
  }
}
