52 lines
1.4 KiB
Java
52 lines
1.4 KiB
Java
package com.baeldung.matrices.colt;
|
|
|
|
import cern.colt.matrix.DoubleFactory2D;
|
|
import cern.colt.matrix.DoubleMatrix2D;
|
|
import cern.colt.matrix.linalg.Algebra;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.openjdk.jmh.annotations.*;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
@BenchmarkMode(Mode.AverageTime)
|
|
@Fork(value = 2)
|
|
@Warmup(iterations = 5)
|
|
@Measurement(iterations = 10)
|
|
public class DoubleMatrix2DUnitTest {
|
|
|
|
@Test
|
|
@Benchmark
|
|
public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
|
|
DoubleFactory2D doubleFactory2D = DoubleFactory2D.dense;
|
|
|
|
DoubleMatrix2D firstMatrix = doubleFactory2D.make(
|
|
new double[][] {
|
|
new double[] {1d, 5d},
|
|
new double[] {2d, 3d},
|
|
new double[] {1d ,7d}
|
|
}
|
|
);
|
|
|
|
DoubleMatrix2D secondMatrix = doubleFactory2D.make(
|
|
new double[][] {
|
|
new double[] {1d, 2d, 3d, 7d},
|
|
new double[] {5d, 2d, 8d, 1d}
|
|
}
|
|
);
|
|
|
|
DoubleMatrix2D expected = doubleFactory2D.make(
|
|
new double[][] {
|
|
new double[] {26d, 12d, 43d, 12d},
|
|
new double[] {17d, 10d, 30d, 17d},
|
|
new double[] {36d, 16d, 59d, 14d}
|
|
}
|
|
);
|
|
|
|
Algebra algebra = new Algebra();
|
|
DoubleMatrix2D actual = algebra.mult(firstMatrix, secondMatrix);
|
|
|
|
assertThat(actual).isEqualTo(expected);
|
|
}
|
|
|
|
}
|