public void TestUniformity_OnUnitSphere() { var rng = new StatelessRng(kSeed); Vector3[] vals = Gen(i => rng.OnUnitSphere(i)).ToArray(); S.CheckUniformity(new[] { "theta", "z" }, vals.Select(ParametrizeSphereSurfaceThetaZ)); // Try along another axis S.CheckUniformity( new[] { "theta", "y" }, vals.Select(v => new Vector3(v.x, v.z, v.y)) .Select(ParametrizeSphereSurfaceThetaZ)); }
public void TestForSaltReuse() { var seen = new HashSet <int>(); var rng = new StatelessRng(kSeed); StatelessRng.SaltUsed = (salt) => { Assert.IsTrue(seen.Add(salt), "Salt {0} is unused", salt); }; try { rng.OnUnitCircle(0); seen.Clear(); rng.InUnitCircle(0); seen.Clear(); rng.OnUnitSphere(0); seen.Clear(); rng.InUnitSphere(0); seen.Clear(); rng.Rotation(0); seen.Clear(); } finally { StatelessRng.SaltUsed = null; } }