|
4 | 4 | using System.Text; |
5 | 5 | using NumSharp.Extensions; |
6 | 6 | using System.Linq; |
| 7 | +using FluentAssertions; |
7 | 8 | using NumSharp; |
8 | 9 |
|
9 | 10 | namespace NumSharp.UnitTest |
10 | 11 | { |
11 | 12 | [TestClass] |
12 | 13 | public class NDStorageTest |
13 | 14 | { |
14 | | - //[TestMethod] |
| 15 | + //TODO! [TestMethod] |
15 | 16 | public void Index() |
16 | 17 | { |
17 | | - var shape0 = new Shape(4,3); |
| 18 | + var shape0 = new Shape(4, 3); |
18 | 19 |
|
19 | 20 | int idx0 = shape0.GetIndexInShape(2, 1); |
20 | | - |
21 | | - Assert.IsTrue(idx0 == 6); |
| 21 | + |
| 22 | + Assert.IsTrue(idx0 == 4*2+1); |
22 | 23 | } |
23 | | - //[TestMethod] |
| 24 | + |
| 25 | + //TODO! [TestMethod] |
24 | 26 | public void CheckIndexing() |
25 | 27 | { |
26 | | - var shape0 = new Shape(4,3,2); |
| 28 | + var shape0 = new Shape(4, 3, 2); |
27 | 29 |
|
28 | 30 | int[] strgDimSize = shape0.Strides; |
29 | 31 |
|
30 | 32 | int index = shape0.GetIndexInShape(1, 2, 1); |
31 | 33 |
|
32 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape0.GetDimIndexOutShape(index),new int[]{1,2,1})); |
| 34 | + Assert.IsTrue(Enumerable.SequenceEqual(shape0.GetDimIndexOutShape(index), new int[] {1, 2, 1})); |
33 | 35 |
|
34 | 36 | var rnd = new Randomizer(); |
35 | | - var randomIndex = new int[]{rnd.Next(0,3),rnd.Next(0,2),rnd.Next(0,1)}; |
| 37 | + var randomIndex = new int[] {rnd.Next(0, 3), rnd.Next(0, 2), rnd.Next(0, 1)}; |
36 | 38 |
|
37 | 39 | int index1 = shape0.GetIndexInShape(randomIndex); |
38 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape0.GetDimIndexOutShape(index1),randomIndex)); |
| 40 | + Assert.IsTrue(Enumerable.SequenceEqual(shape0.GetDimIndexOutShape(index1), randomIndex)); |
39 | 41 |
|
40 | | - var shape1 = new Shape(2,3,4); |
| 42 | + var shape1 = new Shape(2, 3, 4); |
41 | 43 |
|
42 | | - index = shape1.GetIndexInShape(1,2,1); |
43 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape1.GetDimIndexOutShape(index),new int[]{1,2,1})); |
| 44 | + index = shape1.GetIndexInShape(1, 2, 1); |
| 45 | + Assert.IsTrue(Enumerable.SequenceEqual(shape1.GetDimIndexOutShape(index), new int[] {1, 2, 1})); |
44 | 46 |
|
45 | | - randomIndex = new int[]{rnd.Next(0,1),rnd.Next(0,2),rnd.Next(0,3)}; |
| 47 | + randomIndex = new int[] {rnd.Next(0, 1), rnd.Next(0, 2), rnd.Next(0, 3)}; |
46 | 48 | index = shape1.GetIndexInShape(randomIndex); |
47 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape1.GetDimIndexOutShape(index),randomIndex)); |
| 49 | + Assert.IsTrue(Enumerable.SequenceEqual(shape1.GetDimIndexOutShape(index), randomIndex)); |
48 | 50 |
|
49 | | - randomIndex = new int[]{rnd.Next(1,10),rnd.Next(1,10),rnd.Next(1,10)}; |
| 51 | + randomIndex = new int[] {rnd.Next(1, 10), rnd.Next(1, 10), rnd.Next(1, 10)}; |
50 | 52 |
|
51 | 53 | var shape2 = new Shape(randomIndex); |
52 | 54 |
|
53 | | - randomIndex = new int[]{rnd.Next(0,shape2.Dimensions[0]),rnd.Next(0,shape2.Dimensions[1]),rnd.Next(0,shape2.Dimensions[2])}; |
| 55 | + randomIndex = new int[] {rnd.Next(0, shape2.Dimensions[0]), rnd.Next(0, shape2.Dimensions[1]), rnd.Next(0, shape2.Dimensions[2])}; |
54 | 56 |
|
55 | 57 | index = shape2.GetIndexInShape(randomIndex); |
56 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape2.GetDimIndexOutShape(index),randomIndex)); |
| 58 | + Assert.IsTrue(Enumerable.SequenceEqual(shape2.GetDimIndexOutShape(index), randomIndex)); |
57 | 59 | } |
58 | | - //[TestMethod] |
| 60 | + |
| 61 | + //TODO! [TestMethod] |
59 | 62 | public void CheckColRowSwitch() |
60 | 63 | { |
61 | 64 | var shape1 = new Shape(5); |
62 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape1.Strides,new int[]{1})); |
| 65 | + Assert.IsTrue(Enumerable.SequenceEqual(shape1.Strides, new int[] {1})); |
63 | 66 |
|
64 | 67 | shape1.ChangeTensorLayout(); |
65 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape1.Strides,new int[]{1})); |
| 68 | + Assert.IsTrue(Enumerable.SequenceEqual(shape1.Strides, new int[] {1})); |
66 | 69 |
|
67 | | - var shape2 = new Shape(4,3); |
68 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape2.Strides,new int[]{1,4})); |
| 70 | + var shape2 = new Shape(4, 3); |
| 71 | + Assert.IsTrue(Enumerable.SequenceEqual(shape2.Strides, new int[] {1, 4})); |
69 | 72 |
|
70 | 73 | shape2.ChangeTensorLayout(); |
71 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape2.Strides,new int[]{3,1})); |
| 74 | + Assert.IsTrue(Enumerable.SequenceEqual(shape2.Strides, new int[] {3, 1})); |
72 | 75 |
|
73 | | - var shape3 = new Shape(2,3,4); |
74 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape3.Strides,new int[]{1,2,6})); |
| 76 | + var shape3 = new Shape(2, 3, 4); |
| 77 | + Assert.IsTrue(Enumerable.SequenceEqual(shape3.Strides, new int[] {1, 2, 6})); |
75 | 78 |
|
76 | 79 | shape3.ChangeTensorLayout(); |
77 | | - Assert.IsTrue(Enumerable.SequenceEqual(shape3.Strides,new int[]{12,4,1})); |
| 80 | + Assert.IsTrue(Enumerable.SequenceEqual(shape3.Strides, new int[] {12, 4, 1})); |
| 81 | + } |
| 82 | + |
| 83 | + /// <summary> |
| 84 | + /// Based on issue https://github.com/SciSharp/NumSharp/issues/306 |
| 85 | + /// </summary> |
| 86 | + [TestMethod] |
| 87 | + public void EqualityComparer() |
| 88 | + { |
| 89 | + Shape a = null; |
| 90 | + Shape b = null; |
| 91 | + |
| 92 | + (a == b).Should().BeTrue(); |
| 93 | + (a == null).Should().BeTrue(); |
| 94 | + (null == b).Should().BeTrue(); |
| 95 | + |
| 96 | + a = 5; |
| 97 | + b = 4; |
| 98 | + (a != b).Should().BeTrue(); |
| 99 | + |
| 100 | + b = 5; |
| 101 | + (a == b).Should().BeTrue(); |
78 | 102 |
|
| 103 | + a = new Shape(1, 2, 3, 4, 5); |
| 104 | + b = new Shape(1, 2, 3, 4, 5); |
| 105 | + (a == b).Should().BeTrue(); |
| 106 | + b = new Shape(1, 2, 3, 4); |
| 107 | + (a != b).Should().BeTrue(); |
79 | 108 | } |
80 | 109 | } |
81 | 110 | } |
0 commit comments