public void DivideFloatTest()
        {
            var leftSequence  = new float[] { 1, 2, 3, 4, 5 };
            var rightSequence = new float[] { 1, 2, 3, 4, 5 };
            var expected      = new float[] { 1, 1, 1, 1, 1 };

            var actual = LinqTool.Divide(leftSequence, rightSequence);

            Assert.IsTrue(expected.SequenceEqual(actual));

            //------------------------------//

            leftSequence  = new float[] { 1, 2, 3, float.NaN, float.PositiveInfinity };
            rightSequence = new float[] { 1, 2, 3, 4, 5 };
            expected      = new float[] { 1, 1, 1, float.NaN, float.PositiveInfinity };

            actual = LinqTool.Divide(leftSequence, rightSequence);
            Assert.IsTrue(expected.SequenceEqual(actual));

            //------------------------------//

            leftSequence  = new float[] { 1, 2, 3, float.NaN, float.PositiveInfinity };
            rightSequence = new float[] { 1, 0, 3, 4, 5 };
            expected      = new float[] { 1, float.PositiveInfinity, 1, float.NaN, float.PositiveInfinity };

            actual = LinqTool.Divide(leftSequence, rightSequence);
            Assert.IsTrue(expected.SequenceEqual(actual));
        }
        public void DivideIntTest()
        {
            var leftSequence  = new int[] { 1, 2, 3, 4, 5 };
            var rightSequence = new int[] { 1, 2, 3, 4, 5 };
            var expected      = new int[] { 1, 1, 1, 1, 1 };

            var actual = LinqTool.Divide(leftSequence, rightSequence);

            Assert.IsTrue(expected.SequenceEqual(actual));

            //------------------------------//

            try {
                leftSequence  = new int[] { 1, 2, 3, 4, 5 };
                rightSequence = new int[] { 1, 0, 3, 4, 5 };
                expected      = new int[] { 1, 1, 1, 1, 1 };

                actual = LinqTool.Divide(leftSequence, rightSequence);
                int x = actual.Count();
                Assert.Fail();
            }
            catch (DivideByZeroException) {}
            catch (Exception) {
                Assert.Fail();
            }
        }
        public void DivideNullableDoubleTest()
        {
            var leftSequence  = new double?[] { 1, 2, 3, 4, 5 };
            var rightSequence = new double?[] { 1, 2, 3, 4, 5 };
            var expected      = new double?[] { 1, 1, 1, 1, 1 };

            IEnumerable <double?> actual = LinqTool.Divide(leftSequence, rightSequence);

            Assert.IsTrue(expected.SequenceEqual(actual));

            //------------------------------//

            leftSequence  = new double?[] { 1, 2, 3, double.NaN, double.PositiveInfinity };
            rightSequence = new double?[] { 1, 2, 3, 4, 5 };
            expected      = new double?[] { 1, 1, 1, double.NaN, double.PositiveInfinity };

            actual = LinqTool.Divide(leftSequence, rightSequence);
            Assert.IsTrue(expected.SequenceEqual(actual));

            //------------------------------//

            leftSequence  = new double?[] { 1, null, 3, double.NaN, double.PositiveInfinity };
            rightSequence = new double?[] { 1, 2, 3, 4, 5 };
            expected      = new double?[] { 1, null, 1, double.NaN, double.PositiveInfinity };

            actual = LinqTool.Divide(leftSequence, rightSequence);
            Assert.IsTrue(expected.SequenceEqual(actual));

            //------------------------------//

            leftSequence  = new double?[] { 1, 2, 3, double.NaN, double.PositiveInfinity };
            rightSequence = new double?[] { 1, 0, 3, 4, 5 };
            expected      = new double?[] { 1, double.PositiveInfinity, 1, double.NaN, double.PositiveInfinity };

            actual = LinqTool.Divide(leftSequence, rightSequence);
            Assert.IsTrue(expected.SequenceEqual(actual));
        }