public void PseudorandomSeededRand() { for (int seed = 0; seed < 4892; seed += 17) { Pseudorandom rand = (seed == 0) ? new Pseudorandom() : new Pseudorandom(seed - 1); Pseudorandom clone = rand.Clone(); Assert.AreEqual(rand.NextInt32Signed, clone.NextInt32Signed); Assert.AreEqual(rand.NextInt64Signed, clone.NextInt64Signed); Assert.AreEqual(rand.NextBoolean, clone.NextBoolean); Assert.AreEqual(rand.NextDouble, clone.NextDouble); Assert.AreEqual(rand.NextGuid, clone.NextGuid); Assert.AreEqual(rand.NextInt32Signed, clone.NextInt32Signed); Assert.AreEqual(rand.NextInt64Signed, clone.NextInt64Signed); Assert.AreEqual(rand.NextSignMultiplier, clone.NextSignMultiplier); Assert.AreEqual(rand.NextUInt32, clone.NextUInt32); Assert.AreEqual(rand.NextUInt64, clone.NextUInt64); Assert.AreEqual(rand.NextInt32UsuallySmall, clone.NextInt32UsuallySmall); Assert.AreEqual(rand.NextInt64SignedUsuallySmall, clone.NextInt64SignedUsuallySmall); Assert.AreEqual(rand.GetHashCode(), clone.GetHashCode()); Assert.AreEqual(rand.NextEnum(typeof(NormalEnum)), clone.NextEnum(typeof(NormalEnum))); Assert.AreEqual(rand.NextEnum <FlagsEnum>(), clone.NextEnum <FlagsEnum>()); Assert.AreEqual(rand.NextInt32Ranged(54789), clone.NextInt32Ranged(54789)); Assert.AreEqual(rand.NextInt32Ranged(54789, 285702), clone.NextInt32Ranged(54789, 285702)); Assert.AreEqual(rand.NextInt64Ranged(8902432), clone.NextInt64Ranged(8902432)); Assert.AreEqual(rand.NextInt64Ranged(8902432, 5427890480323L), clone.NextInt64Ranged(8902432, 5427890480323L)); Assert.IsTrue(ArrayExtensions.ValueEquals(rand.NextNewBytes(5), clone.NextNewBytes(5))); Assert.AreEqual(rand.NextInt32RangedUsuallySmall(2), clone.NextInt32RangedUsuallySmall(2)); Assert.AreEqual(rand.NextInt32RangedUsuallySmall(90432, 2), clone.NextInt32RangedUsuallySmall(90432, 2)); Assert.AreEqual(rand.NextInt64RangedUsuallySmall(2), clone.NextInt64RangedUsuallySmall(2)); Assert.AreEqual(rand.NextInt64RangedUsuallySmall(90464, 2), clone.NextInt64RangedUsuallySmall(90464, 2)); Assert.AreEqual(rand.ToString(), clone.ToString()); } }
public void PseudorandomEquality() { Pseudorandom rand = new Pseudorandom(5); Assert.AreEqual(new Pseudorandom(5).GetHashCode(), rand.GetHashCode()); Assert.IsFalse(rand.Equals(this)); Assert.IsFalse(rand.Equals(null)); Pseudorandom clone = rand !.Clone(); // not sure how the analyzer gets confused here? maybe it's seeing the Equals(null) above and getting confused about that Assert.IsTrue(rand.Equals(clone)); Assert.IsTrue(rand.Equals((object)clone)); Pseudorandom rand2 = new Pseudorandom(6); Assert.IsFalse(rand == rand2); Assert.IsTrue(rand != rand2); }