public void MakeRandomFloatTest(int count, float min, float max)
        {
            var list = VSArrayExtensions.MakeRandomFloat(count, min, max);

            Assert.That(list.Count, Is.EqualTo(count));
            Assert.That(list.Minimum(), Is.GreaterThanOrEqualTo(min));
            Assert.That(list.Maximum(), Is.LessThanOrEqualTo(max));
            // Stability test
            Assert.That(list, Is.EqualTo(VSArrayExtensions.MakeRandomFloat(count, min, max)));
        }
        public void MakeNormalizedTest()
        {
            var list = VSArrayExtensions.MakeNormalized(VSArrayExtensions.MakeRandomVector(10, -Vector3.one * 100, Vector3.one * 100));

            Assert.That(list.Count, Is.EqualTo(10));
            foreach (var element in list.elements)
            {
                Assert.That(element.magnitude, Is.EqualTo(1.0f).Within(0.001f));
            }
        }
        public void MakeRandomBooleanTest(int count, float probability)
        {
            var list = VSArrayExtensions.MakeRandomBoolean(count, probability);

            Assert.That(list.Count, Is.EqualTo(count));

            float sum = list.Sum(x => x ? 1 : 0);

            Assert.That(sum / count, Is.EqualTo(probability).Within(0.1f));

            // Stability test
            Assert.That(list, Is.EqualTo(VSArrayExtensions.MakeRandomBoolean(count, probability)));
        }
        public void MakeRandomQuaternionTest()
        {
            var list = VSArrayExtensions.MakeRandomQuaternion(100);

            Assert.That(list.Count, Is.EqualTo(100));

            float sumX = list.Sum(x => x.x);
            float sumY = list.Sum(x => x.y);
            float sumZ = list.Sum(x => x.z);

            Assert.That(sumX / 100, Is.EqualTo(0).Within(0.1f));
            Assert.That(sumY / 100, Is.EqualTo(0).Within(0.1f));
            Assert.That(sumZ / 100, Is.EqualTo(0).Within(0.1f));

            // Stability test
            Assert.That(list, Is.EqualTo(VSArrayExtensions.MakeRandomQuaternion(100)));
        }
        public void MakeRandomVectorTest(int count, float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
        {
            var min = new Vector3(minX, minY, minZ);
            var max = new Vector3(maxX, maxY, maxZ);

            var list = VSArrayExtensions.MakeRandomVector(count, min, max);
            var allX = list.elements.Select(v => v.x).ToList();
            var allY = list.elements.Select(v => v.y).ToList();
            var allZ = list.elements.Select(v => v.z).ToList();

            Assert.That(list.Count, Is.EqualTo(count));
            Assert.That(allX.Min, Is.GreaterThanOrEqualTo(min.x));
            Assert.That(allX.Max, Is.LessThanOrEqualTo(max.x));
            Assert.That(allY.Min, Is.GreaterThanOrEqualTo(min.y));
            Assert.That(allY.Max, Is.LessThanOrEqualTo(max.y));
            Assert.That(allZ.Min, Is.GreaterThanOrEqualTo(min.z));
            Assert.That(allZ.Max, Is.LessThanOrEqualTo(max.z));
            // Stability test
            Assert.That(list, Is.EqualTo(VSArrayExtensions.MakeRandomVector(count, min, max)));
        }
        public void MakeStepTestF(int count, float init, float step, float[] expected)
        {
            var list = VSArrayExtensions.MakeStep(count, init, step);

            Assert.That(list, Is.EqualTo(expected.ToVSArray()));
        }
        public void MakeFibonacciTest(int count, float[] expected)
        {
            var list = VSArrayExtensions.MakeFibonacci(count);

            Assert.That(list, Is.EqualTo(expected.ToVSArray()));
        }