public virtual void test_combine()
        {
            DoubleMatrix test1 = DoubleMatrix.of(2, 3, 1d, 2d, 3d, 4d, 5d, 6d);
            DoubleMatrix test2 = DoubleMatrix.of(2, 3, 0.5d, 0.6d, 0.7d, 0.5d, 0.6d, 0.7d);

            assertMatrix(test1.combine(test2, (a, b) => a * b), 0.5d, 2d * 0.6d, 3d * 0.7d, 4d * 0.5d, 5d * 0.6d, 6d * 0.7d);
            assertThrows(() => test1.combine(DoubleMatrix.EMPTY, (a, b) => a * b), typeof(System.ArgumentException));
        }