-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathBaseDataProvider.cs
65 lines (60 loc) · 3.19 KB
/
BaseDataProvider.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
namespace Ashkue.Algorithms
{
public static class BaseDataProvider
{
public static IEnumerable<object[]> FibonacciTestData
{
get
{
yield return new object[2] { -100, "N/A" };
yield return new object[2] { 1, "0" };
yield return new object[2] { 2, "0 1" };
yield return new object[2] { 3, "0 1 1" };
yield return new object[2] { 5, "0 1 1 2 3" };
yield return new object[2] { 8, "0 1 1 2 3 5 8 13" };
yield return new object[2] { 10, "0 1 1 2 3 5 8 13 21 34" };
yield return new object[2] { 25, "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368" };
yield return new object[2] { 1001, "N/A" };
}
}
public static IEnumerable<object[]> SortArrayTestData
{
get
{
yield return new object[2] { new[] { 5, 30 }, new[] { 5, 30 } };
yield return new object[2] { new[] { -5, -30, -7 }, new[] { -30, -7, -5 } };
yield return new object[2] { new[] { 5, 30, 7, 0, -10 }, new[] { -10, 0, 5, 7, 30 } };
yield return new object[2] { new[] { 1, 2, 3, 4, 5 }, new[] { 1, 2, 3, 4, 5 } };
yield return new object[2] { new[] { 5, 4, 3, 2, 1 }, new[] { 1, 2, 3, 4, 5 } };
yield return new object[2] { new[] { 5, 30, 7, 0, -10, 100, 1, -5 }, new[] { -10, -5, 0, 1, 5, 7, 30, 100 } };
yield return new object[2] { new[] { 5, 30, 7, 0, -10, 100, 1, -5, -4, -3 }, new[] { -10, -5, -4, -3, 0, 1, 5, 7, 30, 100 } };
yield return new object[2] { new[] { 5, 10, 10, 5, 5, 10, 1, 1, 1 }, new[] { 1, 1, 1, 5, 5, 5, 10, 10, 10 } };
yield return new object[2] { new[] { 5 }, new[] { 5 } };
yield return new object[2] { new int[0], new int[0] };
// generate very long array
var longArraySorted = Enumerable.Range(-5000, 10000).ToArray();
var longArrayMixed = longArraySorted.OrderBy(c => Guid.NewGuid()).ToArray();
yield return new object[2] { longArrayMixed, longArraySorted };
}
}
public static IEnumerable<object[]> ReverseArrayTestData
{
get
{
yield return new object[2] { null, null };
yield return new object[2] { new int[0], new int[0] };
yield return new object[2] { new[] { 1 }, new[] { 1 } };
yield return new object[2] { new[] { 1, 2 }, new[] { 2, 1 } };
yield return new object[2] { new[] { 1, 2, 3 }, new[] { 3, 2, 1 } };
yield return new object[2] { new[] { -3, -2, -1, 0, 1, 2, 3 }, new[] { 3, 2, 1, 0, -1, -2, -3 } };
// generate very long array
var longArrayOriginal = Enumerable.Range(-10000, 10000).ToArray();
var longArrayReversed = longArrayOriginal.Reverse().ToArray();
yield return new object[2] { longArrayOriginal, longArrayReversed };
}
}
}
}