public void Test1() { var points = IntegerRange.Create(7) .Select(i => new GraphPoint { Id = Guid.NewGuid(), Name = $"v{i}" }) .ToArray(); var relations = new[]
public void Test1() { var taken = new List <string>(); for (int i = 0; i < 20; i++) { var generator = new StringGenerator("$d$d", 0); var items = generator.Take(5, taken.ToArray()); taken.AddRange(items); } Assert.Equal(IntegerRange.Create(100), taken.Select(x => int.Parse(x)).OrderBy(x => x)); }
public static int[] GetRange(int pageNumber, int pageSize, int navCount, bool navAlignRight = false) { int start, end; if (pageSize <= navCount) { start = 1; end = pageSize; } else { var isNavCountEven = navCount % 2 == 0; int relativeLeft, relativeRight; if (isNavCountEven && !navAlignRight) { relativeLeft = navCount / 2 - 1; relativeRight = navCount / 2; } else if (isNavCountEven && navAlignRight) { relativeLeft = navCount / 2; relativeRight = navCount / 2 - 1; } else { relativeLeft = relativeRight = (navCount - 1) / 2; } start = pageNumber - relativeLeft; end = pageNumber + relativeRight; //Revises `start` and `end` if any of them overflow if (start < 1) { end += 1 - start; start = 1; } else if (end > pageSize) { start -= end - pageSize; end = pageSize; } } return(IntegerRange.Create(start, end + 1).ToArray()); }