From eb3b3c268ecfd93faa8e3d026d1c8a33dd6108ac Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Fri, 21 Feb 2025 11:40:55 +0000 Subject: [PATCH 1/3] Update scalafmt-core to 3.9.0 --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 356f692..8636baa 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.17" +version = "3.9.0" runner.dialect = scala3 maxColumn = 100 align { From 3af3a4f28404c7ae15247c78d27a1e987de8e23d Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Fri, 21 Feb 2025 11:41:03 +0000 Subject: [PATCH 2/3] Reformat with scalafmt 3.9.0 Executed command: scalafmt --non-interactive --- .../src/main/scala/matr/TupleSupport.scala | 80 ++++++++----------- .../scala/matr/dflt/DefaultDeterminant.scala | 4 +- .../main/scala/matr/dflt/DefaultInverse.scala | 57 +++++++------ .../matr/dflt/DefaultMatrixAddition.scala | 21 +++-- .../matr/dflt/DefaultMatrixSubtraction.scala | 21 +++-- .../scala/matr/dflt/DefaultTranspose.scala | 38 +++++---- .../test/scala/matr/MatrixCombineSpec.scala | 40 ++++++---- .../test/scala/matr/MatrixFactorySpec.scala | 20 +++-- .../src/test/scala/matr/MatrixFoldSpec.scala | 6 +- .../src/test/scala/matr/MatrixMapSpec.scala | 15 +++- .../test/scala/matr/MatrixMkStringSpec.scala | 5 +- .../test/scala/matr/MatrixModifySpec.scala | 8 +- .../src/test/scala/matr/MatrixSpec.scala | 75 ++++++++++------- .../src/test/scala/matr/ReadmeExamples.scala | 12 ++- .../matr/dflt/DefaultMatrixFactorySpec.scala | 26 +++++- .../matr/dflt/DefaultSubmatrixSpec.scala | 41 ++++++++-- .../matr/dflt/DefaultTransposeSpec.scala | 10 ++- 17 files changed, 280 insertions(+), 199 deletions(-) diff --git a/matr-api/shared/src/main/scala/matr/TupleSupport.scala b/matr-api/shared/src/main/scala/matr/TupleSupport.scala index c66cf72..b1dd33c 100644 --- a/matr-api/shared/src/main/scala/matr/TupleSupport.scala +++ b/matr-api/shared/src/main/scala/matr/TupleSupport.scala @@ -1,13 +1,13 @@ package matr -/** Auxiliary traits and givens supporting tuple-based construction of Matrices via `MatrixFactory.fromTuple`. - */ +/** Auxiliary traits and givens supporting tuple-based construction of Matrices via + * `MatrixFactory.fromTuple`. + */ trait TupleSupport: - trait RowTupleReader[RowTuple, T]: + trait RowTupleReader[RowTuple, T]: def readRow - ( - rowIdx: Int, + (rowIdx: Int, rowTuple: RowTuple, colDim: Int, setElem: (rowIdx: Int, colIdx: Int, elem: T) => Unit @@ -16,62 +16,50 @@ trait TupleSupport: given emptyRowTupleReader[T]: RowTupleReader[EmptyTuple, T] with def readRow - ( - rowIdx: Int, - rowTuple: EmptyTuple, - colDim: Int, - setElem: (rowIdx: Int, colIdx: Int, elem: T) => Unit - ) - : Unit = () + (rowIdx: Int, + rowTuple: EmptyTuple, + colDim: Int, + setElem: (rowIdx: Int, colIdx: Int, elem: T) => Unit + ) + : Unit = () given inductiveRowTupleReader[Tail <: Tuple, T] - (using tailReader: RowTupleReader[Tail, T]) - : RowTupleReader[T *: Tail, T] with + (using tailReader: RowTupleReader[Tail, T]) + : RowTupleReader[T *: Tail, T] with def readRow - ( - rowIdx: Int, - rowTuple: T *: Tail, - colDim: Int, - setElem: (rowIdx: Int, colIdx: Int, elem: T) => Unit - ) - : Unit = - val curElem: T = rowTuple.head + (rowIdx: Int, + rowTuple: T *: Tail, + colDim: Int, + setElem: (rowIdx: Int, colIdx: Int, elem: T) => Unit + ) + : Unit = + val curElem: T = rowTuple.head val remainingRow: Tail = rowTuple.tail - val colIdx: Int = colDim - remainingRow.size - 1 + val colIdx: Int = colDim - remainingRow.size - 1 setElem(rowIdx, colIdx, curElem) tailReader.readRow(rowIdx, remainingRow, colDim, setElem) - trait MatrixTupleReader[MatrixTuple, RowTuple]: - def readMatrix - ( - m: MatrixTuple, - rowDim: Int, - setRow: (rowIdx: Int, rowTuple: RowTuple) => Unit - ) + trait MatrixTupleReader[MatrixTuple, RowTuple]: + def readMatrix(m: MatrixTuple, rowDim: Int, setRow: (rowIdx: Int, rowTuple: RowTuple) => Unit) : Unit given emptyMatrixTupleReader[RowTuple]: MatrixTupleReader[EmptyTuple, RowTuple] with def readMatrix - ( - m: EmptyTuple, - rowDim: Int, - setRow: (rowIdx: Int, rowTuple: RowTuple) => Unit - ) - : Unit = () + (m: EmptyTuple, rowDim: Int, setRow: (rowIdx: Int, rowTuple: RowTuple) => Unit) + : Unit = () given inductiveMatrixTupleReader[MatrixTail <: Tuple, RowTuple] - (using matrixTailReader: MatrixTupleReader[MatrixTail, RowTuple]) - : MatrixTupleReader[RowTuple *: MatrixTail, RowTuple] with + (using matrixTailReader: MatrixTupleReader[MatrixTail, RowTuple]) + : MatrixTupleReader[RowTuple *: MatrixTail, RowTuple] with def readMatrix - ( - m: RowTuple *: MatrixTail, - rowDim: Int, - setRow: (rowIdx: Int, rowTuple: RowTuple) => Unit - ) - : Unit = - val curRow: RowTuple = m.head + (m: RowTuple *: MatrixTail, + rowDim: Int, + setRow: (rowIdx: Int, rowTuple: RowTuple) => Unit + ) + : Unit = + val curRow: RowTuple = m.head val remainingMatrix: MatrixTail = m.tail - val rowIdx: Int = rowDim - remainingMatrix.size - 1 + val rowIdx: Int = rowDim - remainingMatrix.size - 1 setRow(rowIdx, curRow) matrixTailReader.readMatrix(remainingMatrix, rowDim, setRow) diff --git a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultDeterminant.scala b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultDeterminant.scala index 6327c6b..e97cced 100644 --- a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultDeterminant.scala +++ b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultDeterminant.scala @@ -23,9 +23,7 @@ trait DefaultDeterminant: calcDet2x2(get) else var current: T = num.zero - for - colIdx <- 0 until dim - do + for colIdx <- 0 until dim do val _get = excludeRowAndCol(0, colIdx, get) val coeff = if colIdx % 2 == 0 then diff --git a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultInverse.scala b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultInverse.scala index 3cc4d71..431e02e 100644 --- a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultInverse.scala +++ b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultInverse.scala @@ -8,13 +8,18 @@ import matr.ElementDivision import matr.ElementMultiplication import matr.MatrixNotInvertibleException -/** Default determinant implementation based on Gauss Jordan method. +/** Default determinant implementation based on Gauss Jordan method. */ trait DefaultInverse: given defaultInverse[R <: Int, C <: Int, T] (using Matrix.Requirements.IsSquare[R, C]) - (using ElementMultiplication.Aux[T, T, T], ElementDivision.Aux[T, T, T], Numeric[T], MatrixFactory[R, C, T]) + (using + ElementMultiplication.Aux[T, T, T], + ElementDivision.Aux[T, T, T], + Numeric[T], + MatrixFactory[R, C, T] + ) : Inverse[R, C, T] with def inv(m: M): M = @@ -27,32 +32,32 @@ trait DefaultInverse: val a = m.modify val b = mf.identity.modify - for j <- 0 until n do - var p = j - while p < n && a(p, j) == num.zero do - p = p + 1 - if p == n then throw new MatrixNotInvertibleException() - if p != j then - swapRows(a, j, p) - swapRows(b, j, p) - val f = a(j, j) - for k <- 0 until n do - a(j, k) = div.div(a(j, k), f) - b(j, k) = div.div(b(j, k), f) - for i <- 0 until n do - if i != j then - val g = a(i, j) - for k <- 0 until n do - a(i, k) = a(i, k) - mul.times(g, a(j, k)) - b(i, k) = b(i, k) - mul.times(g, b(j, k)) + for j <- 0 until n do + var p = j + while p < n && a(p, j) == num.zero do + p = p + 1 + if p == n then + throw new MatrixNotInvertibleException() + if p != j then + swapRows(a, j, p) + swapRows(b, j, p) + val f = a(j, j) + for k <- 0 until n do + a(j, k) = div.div(a(j, k), f) + b(j, k) = div.div(b(j, k), f) + for i <- 0 until n do + if i != j then + val g = a(i, j) + for k <- 0 until n do + a(i, k) = a(i, k) - mul.times(g, a(j, k)) + b(i, k) = b(i, k) - mul.times(g, b(j, k)) b.result - private def swapRows(mb: MatrixFactory.Builder[R, C, T], r1Idx: Int, r2Idx: Int): Unit = - for idx <- 0 until mb.colDim do - val buf = mb(r1Idx, idx) - mb(r1Idx, idx) = mb(r2Idx, idx) - mb(r2Idx, idx) = buf - + private def swapRows(mb: MatrixFactory.Builder[R, C, T], r1Idx: Int, r2Idx: Int): Unit = + for idx <- 0 until mb.colDim do + val buf = mb(r1Idx, idx) + mb(r1Idx, idx) = mb(r2Idx, idx) + mb(r2Idx, idx) = buf object DefaultInverse extends DefaultInverse diff --git a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixAddition.scala b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixAddition.scala index 2d7e90f..a62a92d 100644 --- a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixAddition.scala +++ b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixAddition.scala @@ -1,18 +1,15 @@ package matr.dflt - import matr.MatrixAddition - import matr.MatrixFactory +import matr.MatrixAddition +import matr.MatrixFactory - - trait DefaultMatrixAddition: +trait DefaultMatrixAddition: - given defaultMatrixAddition[R <: Int, C <: Int, T] - (using num: Numeric[T]) - (using mf: MatrixFactory[R, C, T]) - : MatrixAddition[R, C, T] with + given defaultMatrixAddition[R <: Int, C <: Int, T] + (using num: Numeric[T]) + (using mf: MatrixFactory[R, C, T]) + : MatrixAddition[R, C, T] with - def plus(lhs: M, rhs: M): M = - lhs.combine(rhs)(num.plus) + def plus(lhs: M, rhs: M): M = lhs.combine(rhs)(num.plus) - - object DefaultMatrixAddition extends DefaultMatrixAddition +object DefaultMatrixAddition extends DefaultMatrixAddition diff --git a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixSubtraction.scala b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixSubtraction.scala index 4d93e63..40080fa 100644 --- a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixSubtraction.scala +++ b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultMatrixSubtraction.scala @@ -1,18 +1,15 @@ package matr.dflt - import matr.MatrixFactory - import matr.MatrixSubtraction +import matr.MatrixFactory +import matr.MatrixSubtraction - - trait DefaultMatrixSubtraction: +trait DefaultMatrixSubtraction: - given defaultMatrixSubtraction[R <: Int, C <: Int, T] - (using num: Numeric[T]) - (using mf: MatrixFactory[R, C, T]) - : MatrixSubtraction[R, C, T] with + given defaultMatrixSubtraction[R <: Int, C <: Int, T] + (using num: Numeric[T]) + (using mf: MatrixFactory[R, C, T]) + : MatrixSubtraction[R, C, T] with - def minus(lhs: M, rhs: M): M = - lhs.combine(rhs)(num.minus) + def minus(lhs: M, rhs: M): M = lhs.combine(rhs)(num.minus) - - object DefaultMatrixSubtraction extends DefaultMatrixSubtraction +object DefaultMatrixSubtraction extends DefaultMatrixSubtraction diff --git a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultTranspose.scala b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultTranspose.scala index 2148919..962a13d 100644 --- a/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultTranspose.scala +++ b/matr-dflt-ops/shared/src/main/scala/matr/dflt/DefaultTranspose.scala @@ -1,30 +1,28 @@ package matr.dflt - import matr.Matrix - import matr.MatrixFactory - import matr.Transpose +import matr.Matrix +import matr.MatrixFactory +import matr.Transpose - trait DefaultTranspose: +trait DefaultTranspose: - given defaultTranspose[R <: Int, C <: Int, T] - (using Matrix.Requirements.NonNegativeDimensions[C, R]) - (using ValueOf[R], ValueOf[C]) - : Transpose[R, C, T] with + given defaultTranspose[R <: Int, C <: Int, T] + (using Matrix.Requirements.NonNegativeDimensions[C, R]) + (using ValueOf[R], ValueOf[C]) + : Transpose[R, C, T] with - def transpose(m: Matrix[R, C, T]): Matrix[C, R, T] = - DefaultTranspose.TransposeView(m) + def transpose(m: Matrix[R, C, T]): Matrix[C, R, T] = DefaultTranspose.TransposeView(m) +object DefaultTranspose extends DefaultTranspose: - object DefaultTranspose extends DefaultTranspose: - - final class TransposeView[OrigR <: Int, OrigC <: Int, T](orig: Matrix[OrigR, OrigC, T]) - (using Matrix.Requirements.NonNegativeDimensions[OrigC, OrigR]) - (using ValueOf[OrigR], ValueOf[OrigC]) - extends Matrix[OrigC, OrigR, T]: - - override def apply(rowIdx: Int, colIdx: Int): T = - Matrix.Requirements.positionWithinShape(rowIdx, colIdx, rowDim, colDim) - orig(colIdx, rowIdx) + final class TransposeView[OrigR <: Int, OrigC <: Int, T] + (orig: Matrix[OrigR, OrigC, T]) + (using Matrix.Requirements.NonNegativeDimensions[OrigC, OrigR]) + (using ValueOf[OrigR], ValueOf[OrigC]) + extends Matrix[OrigC, OrigR, T]: + override def apply(rowIdx: Int, colIdx: Int): T = + Matrix.Requirements.positionWithinShape(rowIdx, colIdx, rowDim, colDim) + orig(colIdx, rowIdx) override def toString(): String = s"TransposeView(${orig.toString})" diff --git a/matr-tests/shared/src/test/scala/matr/MatrixCombineSpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixCombineSpec.scala index 743ed95..27df1fd 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixCombineSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixCombineSpec.scala @@ -10,40 +10,48 @@ import org.scalacheck.Arbitrary class MatrixCombineSpec extends MatrFlatSpec: "Combining two Matrices" should "require matrices with same shape" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[4, 4, Double] = MatrixFactory[4, 4, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[4, 4, Double] = MatrixFactory[4, 4, Double].tabulate((_, _) => + Random.nextDouble + ) val fn: (Double, Double) => Int = (a, b) => (a + b).toInt assertTypeError("val res = m1.combine(m2)(fn)") } it should "require a function that takes the data type of the elements (left-hand side as first argument)" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float] - .tabulate((_, _) => Random.nextFloat) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float].tabulate((_, _) => + Random.nextFloat + ) val fn: (Float, Float) => Int = (a, b) => (a + b).toInt assertTypeError("val res = m1.combine(m2)(fn)") } it should "require a function that takes the data type of the elements (right-hand side as second argument)" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float] - .tabulate((_, _) => Random.nextFloat) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float].tabulate((_, _) => + Random.nextFloat + ) val fn: (Double, Double) => Int = (a, b) => (a + b).toInt assertTypeError("val res = m1.combine(m2)(fn)") } it should "require a function that returns the data type of Matrix the result is assigned to" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float] - .tabulate((_, _) => Random.nextFloat) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float].tabulate((_, _) => + Random.nextFloat + ) val fn: (Double, Double) => Int = (a, b) => (a + b).toInt assertTypeError("val res: Matrix[2, 3, Float] = m1.combine(m2)(fn)") diff --git a/matr-tests/shared/src/test/scala/matr/MatrixFactorySpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixFactorySpec.scala index 6424352..3ce00ab 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixFactorySpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixFactorySpec.scala @@ -13,10 +13,15 @@ import matr.TupleSupport.given class MatrixFactorySpec extends MatrFlatSpec: "Tuple-built Matrix" should "equal row-major built Matrix" in { - val m1: Matrix[4, 3, Int] = MatrixFactory[4, 3, Int] - .rowMajor(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) - val m2: Matrix[4, 3, Int] = MatrixFactory[4, 3, Int] - .fromTuple((1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)) + val m1: Matrix[4, 3, Int] = MatrixFactory[4, 3, Int].rowMajor( + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 + ) + val m2: Matrix[4, 3, Int] = MatrixFactory[4, 3, Int].fromTuple( + (1, 2, 3), + (4, 5, 6), + (7, 8, 9), + (10, 11, 12) + ) m1 === m2 shouldEqual true } @@ -26,8 +31,11 @@ class MatrixFactorySpec extends MatrFlatSpec: forAll { (mg: Matrix[3, 2, Int]) => - val md: Matrix[3, 2, Int] = MatrixFactory[3, 2, Int] - .fromTuple((mg(0, 0), mg(0, 1)), (mg(1, 0), mg(1, 1)), (mg(2, 0), mg(2, 1))) + val md: Matrix[3, 2, Int] = MatrixFactory[3, 2, Int].fromTuple( + (mg(0, 0), mg(0, 1)), + (mg(1, 0), mg(1, 1)), + (mg(2, 0), mg(2, 1)) + ) md === mg shouldBe true } diff --git a/matr-tests/shared/src/test/scala/matr/MatrixFoldSpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixFoldSpec.scala index 8e746fb..d28a1a5 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixFoldSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixFoldSpec.scala @@ -94,5 +94,7 @@ class MatrixFoldSpec extends MatrFlatSpec: } } - private def genElements(size: Int): Gen[List[Int]] = Gen - .containerOfN[List, Int](size, Gen.chooseNum(-1000, 1000)) + private def genElements(size: Int): Gen[List[Int]] = Gen.containerOfN[List, Int]( + size, + Gen.chooseNum(-1000, 1000) + ) diff --git a/matr-tests/shared/src/test/scala/matr/MatrixMapSpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixMapSpec.scala index 1d88fa7..b4b50b7 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixMapSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixMapSpec.scala @@ -11,8 +11,9 @@ class MatrixMapSpec extends MatrFlatSpec: "Mapping a Matrix" should "require a function that takes the data type of the elements" in { - val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) val fn: Int => Double = _.toDouble @@ -50,8 +51,14 @@ class MatrixMapSpec extends MatrFlatSpec: val mRes: Matrix[3, 2, Int] = m.map(fn) - val mExp: Matrix[3, 2, Int] = MatrixFactory[3, 2, Int] - .rowMajor(fn(m(0, 0)), fn(m(0, 1)), fn(m(1, 0)), fn(m(1, 1)), fn(m(2, 0)), fn(m(2, 1))) + val mExp: Matrix[3, 2, Int] = MatrixFactory[3, 2, Int].rowMajor( + fn(m(0, 0)), + fn(m(0, 1)), + fn(m(1, 0)), + fn(m(1, 1)), + fn(m(2, 0)), + fn(m(2, 1)) + ) mRes === mExp shouldBe true } diff --git a/matr-tests/shared/src/test/scala/matr/MatrixMkStringSpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixMkStringSpec.scala index 8c7b7c5..e61dfe5 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixMkStringSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixMkStringSpec.scala @@ -103,8 +103,9 @@ class MatrixMkStringSpec extends MatrFlatSpec: "Matrix.mkString with custom element renderer" should "correctly render 2x3 Double Matrix" in { - val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .rowMajor(3.14, 489.9, 0.0, 2234.423, 1.0, 27.543) + val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].rowMajor( + 3.14, 489.9, 0.0, 2234.423, 1.0, 27.543 + ) def renderDouble(e: Double) = String.format("%.4f", e) diff --git a/matr-tests/shared/src/test/scala/matr/MatrixModifySpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixModifySpec.scala index 3287d15..25997e5 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixModifySpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixModifySpec.scala @@ -29,8 +29,12 @@ class MatrixModifySpec extends MatrFlatSpec: buildr(0, 1) = e01new val mRes: Matrix[2, 2, Double] = buildr.result - val mExp: Matrix[2, 2, Double] = MatrixFactory[2, 2, Double] - .rowMajor(m(0, 0), e01new, m(1, 0), m(1, 1)) + val mExp: Matrix[2, 2, Double] = MatrixFactory[2, 2, Double].rowMajor( + m(0, 0), + e01new, + m(1, 0), + m(1, 1) + ) mRes === m shouldBe false mRes === mExp shouldBe true diff --git a/matr-tests/shared/src/test/scala/matr/MatrixSpec.scala b/matr-tests/shared/src/test/scala/matr/MatrixSpec.scala index 8a2b732..5a05a46 100644 --- a/matr-tests/shared/src/test/scala/matr/MatrixSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/MatrixSpec.scala @@ -53,29 +53,34 @@ class MatrixSpec extends MatrFlatSpec: } "Matrix.rowDim" should "return row dimension" in { - val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) m.rowDim shouldEqual 2 } "Matrix.colDim" should "return column dimension" in { - val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) m.colDim shouldEqual 3 } "Comparing two matrices" should "require matrices with same element type" in { - val m1: Matrix[6, 4, Double] = MatrixFactory[6, 4, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[6, 4, Double] = MatrixFactory[6, 4, Double].tabulate((_, _) => + Random.nextDouble + ) val m2: Matrix[6, 4, Int] = MatrixFactory[6, 4, Int].tabulate((_, _) => Random.nextInt) assertTypeError("val res = m1 === m2") } it should "require matrices with same shape" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[4, 4, Double] = MatrixFactory[4, 4, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[4, 4, Double] = MatrixFactory[4, 4, Double].tabulate((_, _) => + Random.nextDouble + ) assertTypeError("val res = m1 === m2") } @@ -90,17 +95,20 @@ class MatrixSpec extends MatrFlatSpec: } "Adding two matrices" should "require matrices with same element type" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float].tabulate((_, _) => Random.nextFloat) assertTypeError("val sum = m1 + m2") } it should "require matrices with same shape" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[2, 7, Double] = MatrixFactory[2, 7, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[2, 7, Double] = MatrixFactory[2, 7, Double].tabulate((_, _) => + Random.nextDouble + ) assertTypeError("val sum = m1 + m2") } @@ -115,17 +123,20 @@ class MatrixSpec extends MatrFlatSpec: } "Subtracting two matrices" should "require matrices with same element type" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) val m2: Matrix[2, 3, Float] = MatrixFactory[2, 3, Float].tabulate((_, _) => Random.nextFloat) assertTypeError("val sum = m1 - m2") } it should "require matrices with same shape" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[2, 7, Double] = MatrixFactory[2, 7, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[2, 7, Double] = MatrixFactory[2, 7, Double].tabulate((_, _) => + Random.nextDouble + ) assertTypeError("val sum = m1 - m2") } @@ -141,10 +152,12 @@ class MatrixSpec extends MatrFlatSpec: "Multiplying two matrices" should "require that the row dim of the first equals the column dim of the second factor" in { - val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) - val m2: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m1: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) + val m2: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) assertTypeError("val prod = m1 dot m2") } @@ -178,14 +191,16 @@ class MatrixSpec extends MatrFlatSpec: } "Getting a submatrix" should "require that the top left coordinate is within matrix shape" in { - val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) assertTypeError("val sub = m.sub[-1, 0, 1, 1]") } it should "require that the bottom right coordinate is within matrix shape" in { - val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .tabulate((_, _) => Random.nextDouble) + val m: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].tabulate((_, _) => + Random.nextDouble + ) assertTypeError("val sub = m.sub[0, 0, 2, 3]") } diff --git a/matr-tests/shared/src/test/scala/matr/ReadmeExamples.scala b/matr-tests/shared/src/test/scala/matr/ReadmeExamples.scala index 54ae42d..81cfdb8 100644 --- a/matr-tests/shared/src/test/scala/matr/ReadmeExamples.scala +++ b/matr-tests/shared/src/test/scala/matr/ReadmeExamples.scala @@ -8,8 +8,11 @@ object ReadmeExamples extends App: import matr.MatrBundle.given // Create a Matrix from tuples - val a: Matrix[3, 4, Int] = MatrixFactory[3, 4, Int] - .fromTuple((0, 8, 15, 0), (4, 7, 1, 1), (1, 2, 3, 4)) + val a: Matrix[3, 4, Int] = MatrixFactory[3, 4, Int].fromTuple( + (0, 8, 15, 0), + (4, 7, 1, 1), + (1, 2, 3, 4) + ) // Create a Matrix of ones val b: Matrix[3, 4, Int] = MatrixFactory[3, 4, Int].ones @@ -18,8 +21,9 @@ object ReadmeExamples extends App: val c: Matrix[3, 4, Int] = a + b // Create a Matrix of random numbers - val d: Matrix[4, 2, Int] = MatrixFactory[4, 2, Int] - .tabulate((_, _) => scala.util.Random.nextInt(20)) + val d: Matrix[4, 2, Int] = MatrixFactory[4, 2, Int].tabulate((_, _) => + scala.util.Random.nextInt(20) + ) // Calculate the dot product of two Matrices val e: Matrix[3, 2, Int] = c dot d diff --git a/matr-tests/shared/src/test/scala/matr/dflt/DefaultMatrixFactorySpec.scala b/matr-tests/shared/src/test/scala/matr/dflt/DefaultMatrixFactorySpec.scala index 12b48e0..c6a136b 100644 --- a/matr-tests/shared/src/test/scala/matr/dflt/DefaultMatrixFactorySpec.scala +++ b/matr-tests/shared/src/test/scala/matr/dflt/DefaultMatrixFactorySpec.scala @@ -120,8 +120,17 @@ class DefaultMatrixFactorySpec extends MatrFlatSpec: val _0 = num.zero val _1 = num.one - val m: Matrix[3, 3, Long] = MatrixFactory[3, 3, Long] - .rowMajor(_0, _1, _0, _1, _0, _0, _1, _0, _1) + val m: Matrix[3, 3, Long] = MatrixFactory[3, 3, Long].rowMajor( + _0, + _1, + _0, + _1, + _0, + _0, + _1, + _0, + _1 + ) m shouldBe a[DefaultSparseMatrix[3, 3, Long]] } @@ -133,8 +142,17 @@ class DefaultMatrixFactorySpec extends MatrFlatSpec: val _0 = num.zero val _1 = num.one - val m: Matrix[3, 3, Long] = MatrixFactory[3, 3, Long] - .rowMajor(_0, _1, _0, _1, _1, _0, _1, _0, _1) + val m: Matrix[3, 3, Long] = MatrixFactory[3, 3, Long].rowMajor( + _0, + _1, + _0, + _1, + _1, + _0, + _1, + _0, + _1 + ) m shouldBe a[DefaultDenseMatrix[3, 3, Long]] } diff --git a/matr-tests/shared/src/test/scala/matr/dflt/DefaultSubmatrixSpec.scala b/matr-tests/shared/src/test/scala/matr/dflt/DefaultSubmatrixSpec.scala index dacf3fa..9649c39 100644 --- a/matr-tests/shared/src/test/scala/matr/dflt/DefaultSubmatrixSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/dflt/DefaultSubmatrixSpec.scala @@ -21,8 +21,14 @@ class DefaultSubmatrixSpec extends MatrFlatSpec: given Arbitrary[Matrix[8, 8, Double]] = ArbitraryMatrix[8, 8, Double] forAll { (m: Matrix[8, 8, Double]) => - val resExp: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double] - .rowMajor(m(2, 1), m(2, 2), m(2, 3), m(3, 1), m(3, 2), m(3, 3)) + val resExp: Matrix[2, 3, Double] = MatrixFactory[2, 3, Double].rowMajor( + m(2, 1), + m(2, 2), + m(2, 3), + m(3, 1), + m(3, 2), + m(3, 3) + ) val resSubmatrix = submatrix.submatrix(m) @@ -54,8 +60,11 @@ class DefaultSubmatrixSpec extends MatrFlatSpec: given Arbitrary[Matrix[8, 8, Double]] = ArbitraryMatrix[8, 8, Double] forAll { (m: Matrix[8, 8, Double]) => - val resExp: Matrix[1, 3, Double] = MatrixFactory[1, 3, Double] - .rowMajor(m(0, 2), m(0, 3), m(0, 4)) + val resExp: Matrix[1, 3, Double] = MatrixFactory[1, 3, Double].rowMajor( + m(0, 2), + m(0, 3), + m(0, 4) + ) val resSubmatrix = submatrix.submatrix(m) @@ -71,8 +80,16 @@ class DefaultSubmatrixSpec extends MatrFlatSpec: given Arbitrary[Matrix[8, 8, Double]] = ArbitraryMatrix[8, 8, Double] forAll { (m: Matrix[8, 8, Double]) => - val resExp: Matrix[8, 1, Double] = MatrixFactory[8, 1, Double] - .rowMajor(m(0, 0), m(1, 0), m(2, 0), m(3, 0), m(4, 0), m(5, 0), m(6, 0), m(7, 0)) + val resExp: Matrix[8, 1, Double] = MatrixFactory[8, 1, Double].rowMajor( + m(0, 0), + m(1, 0), + m(2, 0), + m(3, 0), + m(4, 0), + m(5, 0), + m(6, 0), + m(7, 0) + ) val resSubmatrix = submatrix.submatrix(m) @@ -89,8 +106,16 @@ class DefaultSubmatrixSpec extends MatrFlatSpec: given Arbitrary[Matrix[8, 8, Double]] = ArbitraryMatrix[8, 8, Double] forAll { (m: Matrix[8, 8, Double]) => - val resExp: Matrix[8, 1, Double] = MatrixFactory[8, 1, Double] - .rowMajor(m(0, 1), m(1, 1), m(2, 1), m(3, 1), m(4, 1), m(5, 1), m(6, 1), m(7, 1)) + val resExp: Matrix[8, 1, Double] = MatrixFactory[8, 1, Double].rowMajor( + m(0, 1), + m(1, 1), + m(2, 1), + m(3, 1), + m(4, 1), + m(5, 1), + m(6, 1), + m(7, 1) + ) val resSubmatrix = submatrix.submatrix(m) diff --git a/matr-tests/shared/src/test/scala/matr/dflt/DefaultTransposeSpec.scala b/matr-tests/shared/src/test/scala/matr/dflt/DefaultTransposeSpec.scala index 1f7725c..81172b1 100644 --- a/matr-tests/shared/src/test/scala/matr/dflt/DefaultTransposeSpec.scala +++ b/matr-tests/shared/src/test/scala/matr/dflt/DefaultTransposeSpec.scala @@ -19,8 +19,14 @@ class DefaultTransposeSpec extends MatrFlatSpec: given Arbitrary[Matrix[2, 3, Int]] = ArbitraryMatrix[2, 3, Int] forAll { (m: Matrix[2, 3, Int]) => - val resExp = MatrixFactory[3, 2, Int] - .rowMajor(m(0, 0), m(1, 0), m(0, 1), m(1, 1), m(0, 2), m(1, 2)) + val resExp = MatrixFactory[3, 2, Int].rowMajor( + m(0, 0), + m(1, 0), + m(0, 1), + m(1, 1), + m(0, 2), + m(1, 2) + ) val resTranspose = transpose.transpose(m) From cce1963787adc6dc67f0c304cb4ff39d73cfa41a Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Fri, 21 Feb 2025 11:41:03 +0000 Subject: [PATCH 3/3] Add 'Reformat with scalafmt 3.9.0' to .git-blame-ignore-revs --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..54ecab1 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Scala Steward: Reformat with scalafmt 3.9.0 +3af3a4f28404c7ae15247c78d27a1e987de8e23d