public void subtracting_null_vector_throws()
            {
                var     left  = new VectorF(3);
                VectorF right = null;

                Assert.Throws <ArgumentNullException>(() => left.GetDiffernce(right));
            }
            public void subtracting_vectors_of_different_size_throws()
            {
                var left  = new VectorF(3);
                var right = new VectorF(4);

                Assert.NotEqual(left.Dimensions, right.Dimensions);

                Assert.Throws <ArgumentOutOfRangeException>(() => left.GetDiffernce(right));
            }
            public void subtracting_vectors_leaves_operands_unchanged()
            {
                var left = new VectorF(3);

                left.Set(0, 1);
                left.Set(1, 10);
                left.Set(2, 6);
                var expectedLeft = new VectorF(left);
                var right        = new VectorF(3);

                right.Set(0, 10);
                right.Set(1, 3);
                right.Set(2, 1);
                var expectedRight = new VectorF(right);

                var result = left.GetDiffernce(right);

                Assert.Equal(expectedLeft, left);
                Assert.Equal(expectedRight, right);
            }
            public void subtracting_vector_produces_diff_vector()
            {
                var left = new VectorF(3);

                left.Set(0, 1);
                left.Set(1, 10);
                left.Set(2, 6);
                var right = new VectorF(3);

                right.Set(0, 10);
                right.Set(1, 3);
                right.Set(2, 1);
                var expected = new VectorF(3);

                expected.Set(0, -9);
                expected.Set(1, 7);
                expected.Set(2, 5);

                var actual = left.GetDiffernce(right);

                Assert.Equal(expected, actual);
            }