示例#1
0
        public void Should_GenPrev()
        {
            var lexorank     = LexoRank.Max();
            var prevLexorank = lexorank.GenPrev();

            lexorank.CompareTo(prevLexorank).ShouldBe(1);
        }
示例#2
0
        public void Should_Instance_By_From()
        {
            var lexorank = LexoRank.From(LexoRankBucket.Min(), LexoDecimal.Parse("1", LexoRank.NumeralSystem));

            lexorank.Bucket.Format().ShouldBe("0");
            lexorank.Decimal.Format().ShouldBe("1");
        }
示例#3
0
        public void Should_GenNext()
        {
            var lexorank     = LexoRank.Min();
            var nextLexorank = lexorank.GenNext();

            lexorank.CompareTo(nextLexorank).ShouldBe(-1);
        }
示例#4
0
 public void Should_Different_NumeralSystem_By_From()
 {
     Should.Throw <LexoException>(() =>
     {
         LexoRank.From(LexoRankBucket.Min(), LexoDecimal.Parse("1", new LexoNumeralSystem10()));
     });
 }
示例#5
0
        public void Should_InPrevBucket()
        {
            var lexorank  = LexoRank.Min();
            var lexorank1 = lexorank.InPrevBucket();

            lexorank.Format().Contains("0|").ShouldBeTrue();
            lexorank1.Format().Contains("2|").ShouldBeTrue();
        }
示例#6
0
        public void Should_Between()
        {
            var lexorank  = LexoRank.Min();
            var lexorank1 = lexorank.GenNext();
            var between   = lexorank.Between(lexorank1);

            lexorank.CompareTo(between).ShouldBeLessThan(0);
            lexorank1.CompareTo(between).ShouldBeGreaterThan(0);
        }
示例#7
0
        public void Should_Between_MaxGenPrev()
        {
            var maxRank  = LexoRank.Max();
            var prevRank = maxRank.GenPrev();
            var between  = maxRank.Between(prevRank);

            between.ToString().ShouldBe("0|yzzzzz:");
            maxRank.CompareTo(between).ShouldBeGreaterThan(0);
            prevRank.CompareTo(between).ShouldBeLessThan(0);
        }
示例#8
0
        public void Should_Create_Million_Instances()
        {
            var cursorLexoRank = LexoRank.Min();
            var items          = new List <LexoRank> {
                cursorLexoRank
            };

            for (var i = 0; i < 1000000; i++)
            {
                cursorLexoRank = cursorLexoRank.GenNext();
                items.Add(cursorLexoRank);
            }

            items.Count.ShouldBe(1000001);
        }
示例#9
0
        public void Should_Correct_OrderBy_Value()
        {
            var cursorLexoRank = LexoRank.Min();
            var items          = new List <LexoRank> {
                cursorLexoRank
            };

            for (var i = 0; i < 100000; i++)
            {
                cursorLexoRank = cursorLexoRank.GenNext();
                items.Add(cursorLexoRank);
            }

            var originItems = items.Select(x => x.Format()).ToList();
            var sortItems   = originItems.ToList();

            sortItems.Shuffle();
            sortItems = sortItems.OrderBy(x => x).ToList();

            originItems.SequenceEqual(sortItems).ShouldBeTrue();
        }
示例#10
0
        public void Should_Between_MoveTo(int prevStep, int nextStep, string expected)
        {
            // Arrange
            var prevRank = LexoRank.Min();

            for (var i = 0; i < prevStep; i++)
            {
                prevRank = prevRank.GenNext();
            }

            var nextRank = LexoRank.Min();

            for (var i = 0; i < nextStep; i++)
            {
                nextRank = nextRank.GenNext();
            }

            // Act
            var between = prevRank.Between(nextRank);

            // Assert
            between.ToString().ShouldBe(expected);
        }
示例#11
0
        public void Should_IsMin()
        {
            var lexorank = LexoRank.Min();

            lexorank.IsMin().ShouldBeTrue();
        }
示例#12
0
        public void Should_Equals_Format_From_Parse()
        {
            var lexorank = LexoRank.Parse("1|12345");

            lexorank.Format().ShouldBe("1|12345");
        }