public void ToStringReturnsExpectedResult()
        {
            var value = _fixture.Create <int>();
            var sut   = new GradeSeparatedJunctionId(value);

            Assert.Equal("GSJ-" + value, sut.ToString());
        }
        public void CompareToReturnsExpectedResult(int left, int right, int expected)
        {
            var sut = new GradeSeparatedJunctionId(left);

            var result = sut.CompareTo(new GradeSeparatedJunctionId(right));

            Assert.Equal(expected, result);
        }
        public void NextHasExpectedResult()
        {
            var value = new Generator <int>(_fixture).First(candidate => candidate >= 0 && candidate < int.MaxValue);
            var sut   = new GradeSeparatedJunctionId(value);

            var result = sut.Next();

            Assert.Equal(new GradeSeparatedJunctionId(value + 1), result);
        }
        public void AcceptsReturnsExpectedResult(int value, bool expected)
        {
            var result = GradeSeparatedJunctionId.Accepts(value);

            Assert.Equal(expected, result);
        }
        public void NextThrowsWhenMaximumHasBeenReached()
        {
            var sut = new GradeSeparatedJunctionId(int.MaxValue);

            Assert.Throws <NotSupportedException>(() => sut.Next());
        }
        public void MinHasExpectedResult(int left, int right, int expected)
        {
            var result = GradeSeparatedJunctionId.Min(new GradeSeparatedJunctionId(left), new GradeSeparatedJunctionId(right));

            Assert.Equal(new GradeSeparatedJunctionId(expected), result);
        }