From 9fbca45235ba88186170a2f909c456abac5ef71e Mon Sep 17 00:00:00 2001
From: Iaroslav Postovalov <postovalovya@gmail.com>
Date: Sun, 20 Dec 2020 20:48:38 +0700
Subject: [PATCH] Fix incorrect properties in verifier classes

---
 .../kotlin/kscience/kmath/operations/internal/FieldVerifier.kt  | 2 ++
 .../kotlin/kscience/kmath/operations/internal/RingVerifier.kt   | 2 +-
 .../kotlin/kscience/kmath/operations/internal/SpaceVerifier.kt  | 1 -
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/FieldVerifier.kt b/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/FieldVerifier.kt
index 1ca09ab0c..89f31c75b 100644
--- a/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/FieldVerifier.kt
+++ b/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/FieldVerifier.kt
@@ -12,6 +12,8 @@ internal class FieldVerifier<T>(override val algebra: Field<T>, a: T, b: T, c: T
         super.verify()
 
         algebra {
+            assertEquals(a + b, b + a, "Addition in $algebra is not commutative.")
+            assertEquals(a * b, b * a, "Multiplication in $algebra is not commutative.")
             assertNotEquals(a / b, b / a, "Division in $algebra is not anti-commutative.")
             assertNotEquals((a / b) / c, a / (b / c), "Division in $algebra is associative.")
             assertEquals((a + b) / c, (a / c) + (b / c), "Division in $algebra is not right-distributive.")
diff --git a/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/RingVerifier.kt b/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/RingVerifier.kt
index 863169b9b..359ba1701 100644
--- a/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/RingVerifier.kt
+++ b/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/RingVerifier.kt
@@ -10,7 +10,7 @@ internal open class RingVerifier<T>(override val algebra: Ring<T>, a: T, b: T, c
         super.verify()
 
         algebra {
-            assertEquals(a * b, a * b, "Multiplication in $algebra is not commutative.")
+            assertEquals(a + b, b + a, "Addition in $algebra is not commutative.")
             assertEquals(a * b * c, a * (b * c), "Multiplication in $algebra is not associative.")
             assertEquals(c * (a + b), (c * a) + (c * b), "Multiplication in $algebra is not distributive.")
             assertEquals(a * one, one * a, "$one in $algebra is not a neutral multiplication element.")
diff --git a/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/SpaceVerifier.kt b/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/SpaceVerifier.kt
index 4dc855829..045abb71f 100644
--- a/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/SpaceVerifier.kt
+++ b/kmath-core/src/commonTest/kotlin/kscience/kmath/operations/internal/SpaceVerifier.kt
@@ -15,7 +15,6 @@ internal open class SpaceVerifier<T>(
     AlgebraicVerifier<T, Space<T>> {
     override fun verify() {
         algebra {
-            assertEquals(a + b, b + a, "Addition in $algebra is not commutative.")
             assertEquals(a + b + c, a + (b + c), "Addition in $algebra is not associative.")
             assertEquals(x * (a + b), x * a + x * b, "Addition in $algebra is not distributive.")
             assertEquals((a + b) * x, a * x + b * x, "Addition in $algebra is not distributive.")