- Timestamp:
- 07/12/17 21:04:37 (7 years ago)
- Location:
- stable
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 15191-15192
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Tests
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Tests merged: 15191-15192
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersVectorTest.cs
r15130 r15218 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 22 24 using System.Linq; 25 using HeuristicLab.Encodings.RealVectorEncoding; 23 26 using HeuristicLab.IGraph.Wrappers; 24 27 using Microsoft.VisualStudio.TestTools.UnitTesting; … … 32 35 [TestProperty("Time", "short")] 33 36 public void IGraphWrappersVectorConstructionAndFinalizationTest() { 34 var vector = new Vector(7); 35 Assert.AreEqual(7, vector.Length); 36 Assert.AreEqual(0, vector[0]); 37 vector[0] = 4; 38 var other = new Vector(vector); 39 Assert.AreEqual(7, other.Length); 40 Assert.AreEqual(4, other[0]); 41 37 using (var vector = new Vector(7)) { 38 Assert.AreEqual(7, vector.Length); 39 Assert.AreEqual(0, vector[0]); 40 vector[0] = 4; 41 using (var other = new Vector(vector)) { 42 Assert.AreEqual(7, other.Length); 43 Assert.AreEqual(4, other[0]); 44 } 45 } 42 46 var myvec = new double[] { 1, 2, 3 }; 43 vector = new Vector(myvec); 44 Assert.AreEqual(3, vector.Length); 45 Assert.AreEqual(myvec[0], vector[0]); 46 Assert.AreEqual(myvec[1], vector[1]); 47 Assert.AreEqual(myvec[2], vector[2]); 47 using (var vector = new Vector(myvec)) { 48 Assert.AreEqual(3, vector.Length); 49 Assert.AreEqual(myvec[0], vector[0]); 50 Assert.AreEqual(myvec[1], vector[1]); 51 Assert.AreEqual(myvec[2], vector[2]); 52 } 48 53 } 49 54 … … 53 58 [TestProperty("Time", "short")] 54 59 public void IGraphWrappersVectorGetSetTest() { 55 var vector = new Vector(5);56 vector[0] = vector[1] = 4;57 vector[2] = 3;58 vector[3] = 1.5;59 vector[4] = -0.5;60 Assert.AreEqual(4, vector[0]);61 Assert.AreEqual(4, vector[1]);62 Assert.AreEqual(3, vector[2]);63 Assert.AreEqual(1.5, vector[3]);64 Assert.AreEqual(-0.5, vector[4]);60 using (var vector = new Vector(5)) { 61 vector[0] = vector[1] = 4; 62 vector[2] = 3; 63 vector[3] = 1.5; 64 vector[4] = -0.5; 65 Assert.AreEqual(4, vector[0]); 66 Assert.AreEqual(4, vector[1]); 67 Assert.AreEqual(3, vector[2]); 68 Assert.AreEqual(1.5, vector[3]); 69 Assert.AreEqual(-0.5, vector[4]); 65 70 66 var netmat = vector.ToArray(); 67 Assert.AreEqual(5, netmat.Length); 68 for (var i = 0; i < netmat.Length; i++) 69 Assert.AreEqual(vector[i], netmat[i]); 71 var netmat = vector.ToArray(); 72 Assert.AreEqual(5, netmat.Length); 73 for (var i = 0; i < netmat.Length; i++) 74 Assert.AreEqual(vector[i], netmat[i]); 75 } 70 76 } 71 77 … … 75 81 [TestProperty("Time", "short")] 76 82 public void IGraphWrappersVectorFillTest() { 77 var vector = new Vector(5); 78 vector.Fill(2.3); 79 Assert.IsTrue(new[] { 2.3, 2.3, 2.3, 2.3, 2.3 }.SequenceEqual(vector.ToArray())); 83 using (var vector = new Vector(5)) { 84 vector.Fill(2.3); 85 Assert.IsTrue(new[] { 2.3, 2.3, 2.3, 2.3, 2.3 }.SequenceEqual(vector.ToArray())); 86 } 80 87 } 81 88 … … 85 92 [TestProperty("Time", "short")] 86 93 public void IGraphWrappersVectorReverseTest() { 87 var vector = new Vector(5); 88 vector[0] = vector[1] = 4; 89 vector[2] = 3; 90 vector[3] = 1.5; 91 vector[4] = -0.5; 92 vector.Reverse(); 93 Assert.IsTrue(new[] { -0.5, 1.5, 3, 4, 4 }.SequenceEqual(vector.ToArray())); 94 using (var vector = new Vector(5)) { 95 vector[0] = vector[1] = 4; 96 vector[2] = 3; 97 vector[3] = 1.5; 98 vector[4] = -0.5; 99 vector.Reverse(); 100 Assert.IsTrue(new[] { -0.5, 1.5, 3, 4, 4 }.SequenceEqual(vector.ToArray())); 101 } 94 102 } 95 103 … … 99 107 [TestProperty("Time", "short")] 100 108 public void IGraphWrappersVectorShuffleTest() { 101 var vector = new Vector(5); 102 vector[0] = vector[1] = 4; 103 vector[2] = 3; 104 vector[3] = 1.5; 105 vector[4] = -0.5; 106 vector.Shuffle(); 107 Assert.IsFalse(new[] { -0.5, 1.5, 3, 4, 4 }.SequenceEqual(vector.ToArray())); 108 Assert.IsFalse(new[] { 4, 4, 3, 1.5, -0.5 }.SequenceEqual(vector.ToArray())); 109 var different = new HashSet<RealVector>(new RealVectorEqualityComparer()); 110 for (var i = 0; i < 100; i++) { 111 using (var vector = new Vector(5)) { 112 vector[0] = vector[1] = 4; 113 vector[2] = 3; 114 vector[3] = 1.5; 115 vector[4] = -0.5; 116 vector.Shuffle(); 117 var result = vector.ToArray(); 118 different.Add(new RealVector(result)); 119 Assert.AreEqual(2, result.Count(x => x == 4)); 120 Assert.AreEqual(1, result.Count(x => x == 3)); 121 Assert.AreEqual(1, result.Count(x => x == 1.5)); 122 Assert.AreEqual(1, result.Count(x => x == -0.5)); 123 } 124 } 125 // There should be reasonable low probability that all 100 shuffles result in exactly the same vector 126 Assert.IsTrue(different.Count > 1); 127 Assert.IsTrue(different.Count <= 60); // there are a total of 60 different shuffles 5! / 2! 128 Console.WriteLine("Shuffle produced " + different.Count + " unique vectors"); 109 129 } 110 130 … … 114 134 [TestProperty("Time", "short")] 115 135 public void IGraphWrappersVectorScaleTest() { 116 var vector = new Vector(5); 117 vector[0] = vector[1] = 4; 118 vector[2] = 3; 119 vector[3] = 1.5; 120 vector[4] = -0.5; 121 vector.Scale(2); 122 Assert.IsTrue(new double[] { 8, 8, 6, 3, -1 }.SequenceEqual(vector.ToArray())); 136 using (var vector = new Vector(5)) { 137 vector[0] = vector[1] = 4; 138 vector[2] = 3; 139 vector[3] = 1.5; 140 vector[4] = -0.5; 141 vector.Scale(2); 142 Assert.IsTrue(new double[] { 8, 8, 6, 3, -1 }.SequenceEqual(vector.ToArray())); 143 } 123 144 } 124 145 }
Note: See TracChangeset
for help on using the changeset viewer.