From 45ed45bd137bb5e5f7547333ca72bf6b3d90b46d Mon Sep 17 00:00:00 2001
From: Gleb Minaev <43728100+lounres@users.noreply.github.com>
Date: Tue, 5 Jul 2022 03:41:52 +0300
Subject: [PATCH] Finish tests generation for numbered utilities. Also: -
 Optimize a bit labeled and numbered differentiation. - Fixed bugs in numbered
 anti-differentiation.

---
 .../kscience/kmath/functions/labeledUtil.kt   |   12 +-
 .../kscience/kmath/functions/numberedUtil.kt  |   24 +-
 .../functions/NumberedPolynomialUtilTest.kt   | 2816 ++++++++++++++++-
 3 files changed, 2823 insertions(+), 29 deletions(-)

diff --git a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/labeledUtil.kt b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/labeledUtil.kt
index 4002eb25a..4e799cb43 100644
--- a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/labeledUtil.kt
+++ b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/labeledUtil.kt
@@ -148,7 +148,7 @@ public fun <C, A : Ring<C>> LabeledPolynomial<C>.derivativeWithRespectTo(
     variable: Symbol,
 ): LabeledPolynomial<C> = algebra {
     LabeledPolynomial<C>(
-        buildMap(coefficients.size) {
+        buildMap(coefficients.count { it.key.getOrElse(variable) { 0u } >= 1u }) {
             coefficients
                 .forEach { (degs, c) ->
                     if (variable !in degs) return@forEach
@@ -179,7 +179,7 @@ public fun <C, A : Ring<C>> LabeledPolynomial<C>.nthDerivativeWithRespectTo(
 ): LabeledPolynomial<C> = algebra {
     if (order == 0u) return this@nthDerivativeWithRespectTo
     LabeledPolynomial<C>(
-        buildMap(coefficients.size) {
+        buildMap(coefficients.count { it.key.getOrElse(variable) { 0u } >= order }) {
             coefficients
                 .forEach { (degs, c) ->
                     if (degs.getOrElse(variable) { 0u } < order) return@forEach
@@ -213,7 +213,13 @@ public fun <C, A : Ring<C>> LabeledPolynomial<C>.nthDerivativeWithRespectTo(
     val filteredVariablesAndOrders = variablesAndOrders.filterValues { it != 0u }
     if (filteredVariablesAndOrders.isEmpty()) return this@nthDerivativeWithRespectTo
     LabeledPolynomial<C>(
-        buildMap(coefficients.size) {
+        buildMap(
+            coefficients.count {
+                variablesAndOrders.all { (variable, order) ->
+                    it.key.getOrElse(variable) { 0u } >= order
+                }
+            }
+        ) {
             coefficients
                 .forEach { (degs, c) ->
                     if (filteredVariablesAndOrders.any { (variable, order) -> degs.getOrElse(variable) { 0u } < order }) return@forEach
diff --git a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/numberedUtil.kt b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/numberedUtil.kt
index 9397c1956..9d88cd648 100644
--- a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/numberedUtil.kt
+++ b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/numberedUtil.kt
@@ -352,7 +352,7 @@ public fun <C, A : Ring<C>> NumberedPolynomial<C>.derivativeWithRespectTo(
     variable: Int,
 ): NumberedPolynomial<C> = ring {
     NumberedPolynomial<C>(
-        buildMap(coefficients.size) {
+        buildMap(coefficients.count { it.key.getOrElse(variable) { 0u } >= 1u }) {
             coefficients
                 .forEach { (degs, c) ->
                     if (degs.lastIndex < variable) return@forEach
@@ -382,7 +382,7 @@ public fun <C, A : Ring<C>> NumberedPolynomial<C>.nthDerivativeWithRespectTo(
 ): NumberedPolynomial<C> = ring {
     if (order == 0u) return this@nthDerivativeWithRespectTo
     NumberedPolynomial<C>(
-        buildMap(coefficients.size) {
+        buildMap(coefficients.count { it.key.getOrElse(variable) { 0u } >= order }) {
             coefficients
                 .forEach { (degs, c) ->
                     if (degs.lastIndex < variable) return@forEach
@@ -451,8 +451,8 @@ public fun <C, A : Field<C>> NumberedPolynomial<C>.antiderivativeWithRespectTo(
             coefficients
                 .forEach { (degs, c) ->
                     put(
-                        List(max(variable + 1, degs.size)) { if (it != variable) degs[it] else degs[it] + 1u },
-                        c / multiplyByDoubling(one, degs[variable])
+                        List(max(variable + 1, degs.size)) { degs.getOrElse(it) { 0u } + if (it != variable) 0u else 1u },
+                        c / multiplyByDoubling(one, degs.getOrElse(variable) { 0u } + 1u)
                     )
                 }
         }
@@ -474,9 +474,9 @@ public fun <C, A : Field<C>> NumberedPolynomial<C>.nthAntiderivativeWithRespectT
             coefficients
                 .forEach { (degs, c) ->
                     put(
-                        List(max(variable + 1, degs.size)) { if (it != variable) degs[it] else degs[it] + order },
-                        degs[variable].let { deg ->
-                            (deg downTo deg - order + 1u)
+                        List(max(variable + 1, degs.size)) { degs.getOrElse(it) { 0u } + if (it != variable) 0u else order },
+                        degs.getOrElse(variable) { 0u }.let { deg ->
+                            (deg + 1u .. deg + order)
                                 .fold(c) { acc, ord -> acc / multiplyByDoubling(one, ord) }
                         }
                     )
@@ -501,11 +501,11 @@ public fun <C, A : Field<C>> NumberedPolynomial<C>.nthAntiderivativeWithRespectT
             coefficients
                 .forEach { (degs, c) ->
                     put(
-                        List(max(maxRespectedVariable + 1, degs.size)) { degs[it] + filteredVariablesAndOrders.getOrElse(it) { 0u } },
-                        filteredVariablesAndOrders.entries.fold(c) { acc1, (index, order) ->
-                            degs[index].let { deg ->
-                                (deg downTo deg - order + 1u)
-                                    .fold(acc1) { acc2, ord -> acc2 / multiplyByDoubling(one, ord) }
+                        List(max(maxRespectedVariable + 1, degs.size)) { degs.getOrElse(it) { 0u } + filteredVariablesAndOrders.getOrElse(it) { 0u } },
+                        filteredVariablesAndOrders.entries.fold(c) { acc1, (variable, order) ->
+                            degs.getOrElse(variable) { 0u }.let { deg ->
+                                (deg + 1u .. deg + order)
+                                    .fold(acc1) { acc, ord -> acc / multiplyByDoubling(one, ord) }
                             }
                         }
                     )
diff --git a/kmath-functions/src/commonTest/kotlin/space/kscience/kmath/functions/NumberedPolynomialUtilTest.kt b/kmath-functions/src/commonTest/kotlin/space/kscience/kmath/functions/NumberedPolynomialUtilTest.kt
index 9e49f1315..1b87d3fcf 100644
--- a/kmath-functions/src/commonTest/kotlin/space/kscience/kmath/functions/NumberedPolynomialUtilTest.kt
+++ b/kmath-functions/src/commonTest/kotlin/space/kscience/kmath/functions/NumberedPolynomialUtilTest.kt
@@ -5,6 +5,7 @@
 
 package space.kscience.kmath.functions
 
+import space.kscience.kmath.misc.UnstableKMathAPI
 import space.kscience.kmath.structures.Buffer
 import space.kscience.kmath.structures.asBuffer
 import space.kscience.kmath.test.misc.Rational
@@ -8832,7 +8833,7 @@ class NumberedPolynomialUtilTest {
                 listOf(0u, 2u) to Rational(5, 5),
                 listOf(1u, 2u) to Rational(18, 9),
                 listOf(2u, 2u) to Rational(5, 2),
-            ).substituteFully(RationalField, bufferOf<Rational>())
+            ).substituteFully(RationalField, bufferOf())
         }
         assertFailsWithTypeAndMessage<IllegalArgumentException>(
             fullSubstitutionExceptionMessage,
@@ -9200,37 +9201,2824 @@ class NumberedPolynomialUtilTest {
                     listOf(1u, 2u) to Rational(-5, 5),
                     listOf(2u, 2u) to Rational(-7, 8),
                 )
-            ).substituteFully(RationalField, bufferOf<Rational>())
+            ).substituteFully(RationalField, bufferOf())
         }
     }
     @Test
-    @Ignore
+    @OptIn(UnstableKMathAPI::class)
     fun test_Polynomial_derivativeWithRespectTo_variable() {
-        // TODO
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-2),
+                listOf(1u) to Rational(2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).derivativeWithRespectTo(RationalField, 0),
+            "test 1"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-2, 3),
+                listOf(1u) to Rational(1, 1),
+                listOf(2u) to Rational(-33, 8),
+                listOf(3u) to Rational(72, 1),
+                listOf(0u, 1u) to Rational(2, 3),
+                listOf(1u, 1u) to Rational(-22, 1),
+                listOf(2u, 1u) to Rational(-1, 1),
+                listOf(3u, 1u) to Rational(-36, 1),
+                listOf(0u, 2u) to Rational(-8, 5),
+                listOf(1u, 2u) to Rational(-1, 4),
+                listOf(2u, 2u) to Rational(12, 7),
+                listOf(3u, 2u) to Rational(-2, 1),
+                listOf(0u, 3u) to Rational(16, 8),
+                listOf(1u, 3u) to Rational(-4, 1),
+                listOf(2u, 3u) to Rational(9, 2),
+                listOf(3u, 3u) to Rational(20, 9),
+                listOf(0u, 4u) to Rational(-10, 1),
+                listOf(1u, 4u) to Rational(-14, 1),
+                listOf(2u, 4u) to Rational(3, 7),
+                listOf(3u, 4u) to Rational(20, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).derivativeWithRespectTo(RationalField, 0),
+            "test 2a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-18, 3),
+                listOf(1u) to Rational(2, 3),
+                listOf(2u) to Rational(-11, 1),
+                listOf(3u) to Rational(-1, 3),
+                listOf(4u) to Rational(-18, 2),
+                listOf(0u, 1u) to Rational(-20, 3),
+                listOf(1u, 1u) to Rational(-16, 5),
+                listOf(2u, 1u) to Rational(-1, 4),
+                listOf(3u, 1u) to Rational(8, 7),
+                listOf(4u, 1u) to Rational(-1, 1),
+                listOf(0u, 2u) to Rational(9, 7),
+                listOf(1u, 2u) to Rational(6, 1),
+                listOf(2u, 2u) to Rational(-6, 1),
+                listOf(3u, 2u) to Rational(9, 2),
+                listOf(4u, 2u) to Rational(5, 3),
+                listOf(0u, 3u) to Rational(-9, 1),
+                listOf(1u, 3u) to Rational(-40, 1),
+                listOf(2u, 3u) to Rational(-28, 1),
+                listOf(3u, 3u) to Rational(4, 7),
+                listOf(4u, 3u) to Rational(20, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).derivativeWithRespectTo(RationalField, 1),
+            "test 2b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(-1, 4),
+                listOf(2u, 2u) to Rational(12, 7),
+                listOf(3u, 2u) to Rational(-2, 1),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(-4, 1),
+                listOf(2u, 3u) to Rational(9, 2),
+                listOf(3u, 3u) to Rational(20, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(-14, 1),
+                listOf(2u, 4u) to Rational(3, 7),
+                listOf(3u, 4u) to Rational(20, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).derivativeWithRespectTo(RationalField, 0),
+            "test 3a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(-1, 4),
+                listOf(3u, 1u) to Rational(8, 7),
+                listOf(4u, 1u) to Rational(-1, 1),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-6, 1),
+                listOf(3u, 2u) to Rational(9, 2),
+                listOf(4u, 2u) to Rational(5, 3),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-28, 1),
+                listOf(3u, 3u) to Rational(4, 7),
+                listOf(4u, 3u) to Rational(20, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).derivativeWithRespectTo(RationalField, 1),
+            "test 3b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-2, 3),
+                listOf(1u) to Rational(1, 1),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(0u, 1u) to Rational(2, 3),
+                listOf(1u, 1u) to Rational(-22, 1),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-8, 5),
+                listOf(1u, 2u) to Rational(-1, 4),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).derivativeWithRespectTo(RationalField, 0),
+            "test 4a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-18, 3),
+                listOf(1u) to Rational(2, 3),
+                listOf(2u) to Rational(-11, 1),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-20, 3),
+                listOf(1u, 1u) to Rational(-16, 5),
+                listOf(2u, 1u) to Rational(-1, 4),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).derivativeWithRespectTo(RationalField, 1),
+            "test 4b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).derivativeWithRespectTo(RationalField, 5),
+            "test 5"
+        )
     }
     @Test
-    @Ignore
+    @OptIn(UnstableKMathAPI::class)
     fun test_Polynomial_nthDerivativeWithRespectTo_variable_order() {
-        // TODO
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-2),
+                listOf(1u) to Rational(2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 1u),
+            "test 1"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 0u),
+            "test 2"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 2u),
+            "test 3"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 3u),
+            "test 4"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 4u),
+            "test 5"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 1, 0u),
+            "test 6"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 1, 1u),
+            "test 7"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, 1, 2u),
+            "test 8"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1, 1),
+                listOf(1u) to Rational(-33, 4),
+                listOf(2u) to Rational(216, 1),
+                listOf(0u, 1u) to Rational(-22, 1),
+                listOf(1u, 1u) to Rational(-2, 1),
+                listOf(2u, 1u) to Rational(-108, 1),
+                listOf(0u, 2u) to Rational(-1, 4),
+                listOf(1u, 2u) to Rational(24, 7),
+                listOf(2u, 2u) to Rational(-6, 1),
+                listOf(0u, 3u) to Rational(-4, 1),
+                listOf(1u, 3u) to Rational(9, 1),
+                listOf(2u, 3u) to Rational(20, 3),
+                listOf(0u, 4u) to Rational(-14, 1),
+                listOf(1u, 4u) to Rational(6, 7),
+                listOf(2u, 4u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 2u),
+            "test 9a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-20, 3),
+                listOf(1u) to Rational(-16, 5),
+                listOf(2u) to Rational(-1, 4),
+                listOf(3u) to Rational(8, 7),
+                listOf(4u) to Rational(-1, 1),
+                listOf(0u, 1u) to Rational(18, 7),
+                listOf(1u, 1u) to Rational(12, 1),
+                listOf(2u, 1u) to Rational(-12, 1),
+                listOf(3u, 1u) to Rational(9, 1),
+                listOf(4u, 1u) to Rational(10, 3),
+                listOf(0u, 2u) to Rational(-27, 1),
+                listOf(1u, 2u) to Rational(-120, 1),
+                listOf(2u, 2u) to Rational(-84, 1),
+                listOf(3u, 2u) to Rational(12, 7),
+                listOf(4u, 2u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, 1, 2u),
+            "test 9b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-1, 4),
+                listOf(1u, 2u) to Rational(24, 7),
+                listOf(2u, 2u) to Rational(-6, 1),
+                listOf(0u, 3u) to Rational(-4, 1),
+                listOf(1u, 3u) to Rational(9, 1),
+                listOf(2u, 3u) to Rational(20, 3),
+                listOf(0u, 4u) to Rational(-14, 1),
+                listOf(1u, 4u) to Rational(6, 7),
+                listOf(2u, 4u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 2u),
+            "test 10a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(-1, 4),
+                listOf(3u) to Rational(8, 7),
+                listOf(4u) to Rational(-1, 1),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(-12, 1),
+                listOf(3u, 1u) to Rational(9, 1),
+                listOf(4u, 1u) to Rational(10, 3),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-84, 1),
+                listOf(3u, 2u) to Rational(12, 7),
+                listOf(4u, 2u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, 1, 2u),
+            "test 10b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1, 1),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(0u, 1u) to Rational(-22, 1),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-1, 4),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthDerivativeWithRespectTo(RationalField, 0, 2u),
+            "test 11a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-20, 3),
+                listOf(1u) to Rational(-16, 5),
+                listOf(2u) to Rational(-1, 4),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthDerivativeWithRespectTo(RationalField, 1, 2u),
+            "test 11b"
+        )
     }
     @Test
-    @Ignore
+    @OptIn(UnstableKMathAPI::class)
     fun test_Polynomial_nthDerivativeWithRespectTo_variablesAndOrders() {
-        // TODO
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-2),
+                listOf(1u) to Rational(2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 1u)),
+            "test 1"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 0u)),
+            "test 2"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 3"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 3u)),
+            "test 4"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 4u)),
+            "test 5"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(1 to 0u)),
+            "test 6"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(1 to 1u)),
+            "test 7"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 8"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf()),
+            "test 9"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-2),
+                listOf(1u) to Rational(2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(
+                0 to 1u,
+                1 to 0u
+            )),
+            "test 10"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(
+                0 to 0u,
+                1 to 1u
+            )),
+            "test 11"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1, 1),
+                listOf(1u) to Rational(-33, 4),
+                listOf(2u) to Rational(216, 1),
+                listOf(0u, 1u) to Rational(-22, 1),
+                listOf(1u, 1u) to Rational(-2, 1),
+                listOf(2u, 1u) to Rational(-108, 1),
+                listOf(0u, 2u) to Rational(-1, 4),
+                listOf(1u, 2u) to Rational(24, 7),
+                listOf(2u, 2u) to Rational(-6, 1),
+                listOf(0u, 3u) to Rational(-4, 1),
+                listOf(1u, 3u) to Rational(9, 1),
+                listOf(2u, 3u) to Rational(20, 3),
+                listOf(0u, 4u) to Rational(-14, 1),
+                listOf(1u, 4u) to Rational(6, 7),
+                listOf(2u, 4u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 12a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(2, 3),
+                listOf(1u) to Rational(-22, 1),
+                listOf(2u) to Rational(-1, 1),
+                listOf(3u) to Rational(-36, 1),
+                listOf(0u, 1u) to Rational(-16, 5),
+                listOf(1u, 1u) to Rational(-1, 2),
+                listOf(2u, 1u) to Rational(24, 7),
+                listOf(3u, 1u) to Rational(-4, 1),
+                listOf(0u, 2u) to Rational(6, 1),
+                listOf(1u, 2u) to Rational(-12, 1),
+                listOf(2u, 2u) to Rational(27, 2),
+                listOf(3u, 2u) to Rational(20, 3),
+                listOf(0u, 3u) to Rational(-40, 1),
+                listOf(1u, 3u) to Rational(-56, 1),
+                listOf(2u, 3u) to Rational(12, 7),
+                listOf(3u, 3u) to Rational(80, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 1u, 1 to 1u)),
+            "test 12b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-20, 3),
+                listOf(1u) to Rational(-16, 5),
+                listOf(2u) to Rational(-1, 4),
+                listOf(3u) to Rational(8, 7),
+                listOf(4u) to Rational(-1, 1),
+                listOf(0u, 1u) to Rational(18, 7),
+                listOf(1u, 1u) to Rational(12, 1),
+                listOf(2u, 1u) to Rational(-12, 1),
+                listOf(3u, 1u) to Rational(9, 1),
+                listOf(4u, 1u) to Rational(10, 3),
+                listOf(0u, 2u) to Rational(-27, 1),
+                listOf(1u, 2u) to Rational(-120, 1),
+                listOf(2u, 2u) to Rational(-84, 1),
+                listOf(3u, 2u) to Rational(12, 7),
+                listOf(4u, 2u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 12c"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-1, 4),
+                listOf(1u, 2u) to Rational(24, 7),
+                listOf(2u, 2u) to Rational(-6, 1),
+                listOf(0u, 3u) to Rational(-4, 1),
+                listOf(1u, 3u) to Rational(9, 1),
+                listOf(2u, 3u) to Rational(20, 3),
+                listOf(0u, 4u) to Rational(-14, 1),
+                listOf(1u, 4u) to Rational(6, 7),
+                listOf(2u, 4u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 13a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(-1, 2),
+                listOf(2u, 1u) to Rational(24, 7),
+                listOf(3u, 1u) to Rational(-4, 1),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(-12, 1),
+                listOf(2u, 2u) to Rational(27, 2),
+                listOf(3u, 2u) to Rational(20, 3),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(-56, 1),
+                listOf(2u, 3u) to Rational(12, 7),
+                listOf(3u, 3u) to Rational(80, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 1u, 1 to 1u)),
+            "test 13b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(-1, 4),
+                listOf(3u) to Rational(8, 7),
+                listOf(4u) to Rational(-1, 1),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(-12, 1),
+                listOf(3u, 1u) to Rational(9, 1),
+                listOf(4u, 1u) to Rational(10, 3),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-84, 1),
+                listOf(3u, 2u) to Rational(12, 7),
+                listOf(4u, 2u) to Rational(60, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 13c"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1, 1),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(0u, 1u) to Rational(-22, 1),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-1, 4),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 14a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(2, 3),
+                listOf(1u) to Rational(-22, 1),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(0u, 1u) to Rational(-16, 5),
+                listOf(1u, 1u) to Rational(-1, 2),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(0 to 1u, 1 to 1u)),
+            "test 14b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-20, 3),
+                listOf(1u) to Rational(-16, 5),
+                listOf(2u) to Rational(-1, 4),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthDerivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 14c"
+        )
     }
     @Test
-    @Ignore
+    @OptIn(UnstableKMathAPI::class)
     fun test_Polynomial_antiderivativeWithRespectTo_variable() {
-        // TODO
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(1),
+                listOf(2u) to Rational(-1),
+                listOf(3u) to Rational(1, 3),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).antiderivativeWithRespectTo(RationalField, 0),
+            "test 1"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(-6, 8),
+                listOf(2u) to Rational(-1, 3),
+                listOf(3u) to Rational(1, 6),
+                listOf(4u) to Rational(-11, 32),
+                listOf(5u) to Rational(18, 5),
+                listOf(1u, 1u) to Rational(-18, 3),
+                listOf(2u, 1u) to Rational(1, 3),
+                listOf(3u, 1u) to Rational(-11, 3),
+                listOf(4u, 1u) to Rational(-1, 12),
+                listOf(5u, 1u) to Rational(-18, 10),
+                listOf(1u, 2u) to Rational(-10, 3),
+                listOf(2u, 2u) to Rational(-4, 5),
+                listOf(3u, 2u) to Rational(-1, 24),
+                listOf(4u, 2u) to Rational(1, 7),
+                listOf(5u, 2u) to Rational(-1, 10),
+                listOf(1u, 3u) to Rational(3, 7),
+                listOf(2u, 3u) to Rational(1, 1),
+                listOf(3u, 3u) to Rational(-2, 3),
+                listOf(4u, 3u) to Rational(3, 8),
+                listOf(5u, 3u) to Rational(1, 9),
+                listOf(1u, 4u) to Rational(-18, 8),
+                listOf(2u, 4u) to Rational(-5, 1),
+                listOf(3u, 4u) to Rational(-7, 3),
+                listOf(4u, 4u) to Rational(1, 28),
+                listOf(5u, 4u) to Rational(1, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).antiderivativeWithRespectTo(RationalField, 0),
+            "test 2a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 1u) to Rational(-6, 8),
+                listOf(1u, 1u) to Rational(-2, 3),
+                listOf(2u, 1u) to Rational(1, 2),
+                listOf(3u, 1u) to Rational(-11, 8),
+                listOf(4u, 1u) to Rational(18, 1),
+                listOf(0u, 2u) to Rational(-9, 3),
+                listOf(1u, 2u) to Rational(1, 3),
+                listOf(2u, 2u) to Rational(-11, 2),
+                listOf(3u, 2u) to Rational(-1, 6),
+                listOf(4u, 2u) to Rational(-9, 2),
+                listOf(0u, 3u) to Rational(-10, 9),
+                listOf(1u, 3u) to Rational(-8, 15),
+                listOf(2u, 3u) to Rational(-1, 24),
+                listOf(3u, 3u) to Rational(4, 21),
+                listOf(4u, 3u) to Rational(-1, 6),
+                listOf(0u, 4u) to Rational(3, 28),
+                listOf(1u, 4u) to Rational(1, 2),
+                listOf(2u, 4u) to Rational(-1, 2),
+                listOf(3u, 4u) to Rational(3, 8),
+                listOf(4u, 4u) to Rational(5, 36),
+                listOf(0u, 5u) to Rational(-9, 20),
+                listOf(1u, 5u) to Rational(-2, 1),
+                listOf(2u, 5u) to Rational(-7, 5),
+                listOf(3u, 5u) to Rational(1, 35),
+                listOf(4u, 5u) to Rational(1, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).antiderivativeWithRespectTo(RationalField, 1),
+            "test 2b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(5u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(5u, 1u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(-1, 24),
+                listOf(4u, 2u) to Rational(1, 7),
+                listOf(5u, 2u) to Rational(-1, 10),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(-2, 3),
+                listOf(4u, 3u) to Rational(3, 8),
+                listOf(5u, 3u) to Rational(1, 9),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(-7, 3),
+                listOf(4u, 4u) to Rational(1, 28),
+                listOf(5u, 4u) to Rational(1, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).antiderivativeWithRespectTo(RationalField, 0),
+            "test 3a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-1, 24),
+                listOf(3u, 3u) to Rational(4, 21),
+                listOf(4u, 3u) to Rational(-1, 6),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-1, 2),
+                listOf(3u, 4u) to Rational(3, 8),
+                listOf(4u, 4u) to Rational(5, 36),
+                listOf(0u, 5u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(-7, 5),
+                listOf(3u, 5u) to Rational(1, 35),
+                listOf(4u, 5u) to Rational(1, 1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).antiderivativeWithRespectTo(RationalField, 1),
+            "test 3b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(-6, 8),
+                listOf(2u) to Rational(-1, 3),
+                listOf(3u) to Rational(1, 6),
+                listOf(4u) to Rational(0),
+                listOf(5u) to Rational(0),
+                listOf(1u, 1u) to Rational(-18, 3),
+                listOf(2u, 1u) to Rational(1, 3),
+                listOf(3u, 1u) to Rational(-11, 3),
+                listOf(4u, 1u) to Rational(0),
+                listOf(5u, 1u) to Rational(0),
+                listOf(1u, 2u) to Rational(-10, 3),
+                listOf(2u, 2u) to Rational(-4, 5),
+                listOf(3u, 2u) to Rational(-1, 24),
+                listOf(4u, 2u) to Rational(0),
+                listOf(5u, 2u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(5u, 3u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(5u, 4u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).antiderivativeWithRespectTo(RationalField, 0),
+            "test 4a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 1u) to Rational(-6, 8),
+                listOf(1u, 1u) to Rational(-2, 3),
+                listOf(2u, 1u) to Rational(1, 2),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-9, 3),
+                listOf(1u, 2u) to Rational(1, 3),
+                listOf(2u, 2u) to Rational(-11, 2),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(-10, 9),
+                listOf(1u, 3u) to Rational(-8, 15),
+                listOf(2u, 3u) to Rational(-1, 24),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(0u, 5u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(0),
+                listOf(3u, 5u) to Rational(0),
+                listOf(4u, 5u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).antiderivativeWithRespectTo(RationalField, 1),
+            "test 4b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 0u, 0u, 0u, 0u, 1u) to Rational(-6, 8),
+                listOf(1u, 0u, 0u, 0u, 0u, 1u) to Rational(-2, 3),
+                listOf(2u, 0u, 0u, 0u, 0u, 1u) to Rational(1, 2),
+                listOf(3u, 0u, 0u, 0u, 0u, 1u) to Rational(-11, 8),
+                listOf(4u, 0u, 0u, 0u, 0u, 1u) to Rational(18, 1),
+                listOf(0u, 1u, 0u, 0u, 0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u, 0u, 0u, 0u, 1u) to Rational(2, 3),
+                listOf(2u, 1u, 0u, 0u, 0u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u, 0u, 0u, 0u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u, 0u, 0u, 0u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u, 0u, 0u, 0u, 1u) to Rational(-10, 3),
+                listOf(1u, 2u, 0u, 0u, 0u, 1u) to Rational(-8, 5),
+                listOf(2u, 2u, 0u, 0u, 0u, 1u) to Rational(-1, 8),
+                listOf(3u, 2u, 0u, 0u, 0u, 1u) to Rational(4, 7),
+                listOf(4u, 2u, 0u, 0u, 0u, 1u) to Rational(-4, 8),
+                listOf(0u, 3u, 0u, 0u, 0u, 1u) to Rational(3, 7),
+                listOf(1u, 3u, 0u, 0u, 0u, 1u) to Rational(16, 8),
+                listOf(2u, 3u, 0u, 0u, 0u, 1u) to Rational(-16, 8),
+                listOf(3u, 3u, 0u, 0u, 0u, 1u) to Rational(12, 8),
+                listOf(4u, 3u, 0u, 0u, 0u, 1u) to Rational(5, 9),
+                listOf(0u, 4u, 0u, 0u, 0u, 1u) to Rational(-18, 8),
+                listOf(1u, 4u, 0u, 0u, 0u, 1u) to Rational(-10, 1),
+                listOf(2u, 4u, 0u, 0u, 0u, 1u) to Rational(-14, 2),
+                listOf(3u, 4u, 0u, 0u, 0u, 1u) to Rational(1, 7),
+                listOf(4u, 4u, 0u, 0u, 0u, 1u) to Rational(15, 3),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).antiderivativeWithRespectTo(RationalField, 5),
+            "test 5"
+        )
     }
     @Test
-    @Ignore
+    @OptIn(UnstableKMathAPI::class)
     fun test_Polynomial_nthAntiderivativeWithRespectTo_variable_order() {
-        // TODO
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(1),
+                listOf(2u) to Rational(-1),
+                listOf(3u) to Rational(1, 3),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 1u),
+            "test 1"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 0u),
+            "test 2"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-1, 3),
+                listOf(4u) to Rational(1, 12),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 2u),
+            "test 3"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(3u) to Rational(1, 6),
+                listOf(4u) to Rational(-1, 12),
+                listOf(5u) to Rational(1, 60),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 3u),
+            "test 4"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(4u) to Rational(1, 24),
+                listOf(5u) to Rational(-1, 60),
+                listOf(6u) to Rational(1, 360),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 4u),
+            "test 5"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 0u),
+            "test 6"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 1u) to Rational(1),
+                listOf(1u, 1u) to Rational(-2),
+                listOf(2u, 1u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 1u),
+            "test 7"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(1, 2),
+                listOf(1u, 2u) to Rational(-1),
+                listOf(2u, 2u) to Rational(1, 2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 2u),
+            "test 8"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(-3, 8),
+                listOf(3u) to Rational(-1, 9),
+                listOf(4u) to Rational(1, 24),
+                listOf(5u) to Rational(-11, 160),
+                listOf(6u) to Rational(3, 5),
+                listOf(2u, 1u) to Rational(-9, 3),
+                listOf(3u, 1u) to Rational(1, 9),
+                listOf(4u, 1u) to Rational(-11, 12),
+                listOf(5u, 1u) to Rational(-1, 60),
+                listOf(6u, 1u) to Rational(-3, 10),
+                listOf(2u, 2u) to Rational(-5, 3),
+                listOf(3u, 2u) to Rational(-4, 15),
+                listOf(4u, 2u) to Rational(-1, 96),
+                listOf(5u, 2u) to Rational(1, 35),
+                listOf(6u, 2u) to Rational(-1, 60),
+                listOf(2u, 3u) to Rational(3, 14),
+                listOf(3u, 3u) to Rational(1, 3),
+                listOf(4u, 3u) to Rational(-1, 6),
+                listOf(5u, 3u) to Rational(3, 40),
+                listOf(6u, 3u) to Rational(1, 54),
+                listOf(2u, 4u) to Rational(-9, 8),
+                listOf(3u, 4u) to Rational(-5, 3),
+                listOf(4u, 4u) to Rational(-7, 12),
+                listOf(5u, 4u) to Rational(1, 140),
+                listOf(6u, 4u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 2u),
+            "test 9a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(-3, 8),
+                listOf(1u, 2u) to Rational(-1, 3),
+                listOf(2u, 2u) to Rational(1, 4),
+                listOf(3u, 2u) to Rational(-11, 16),
+                listOf(4u, 2u) to Rational(9, 1),
+                listOf(0u, 3u) to Rational(-1, 1),
+                listOf(1u, 3u) to Rational(1, 9),
+                listOf(2u, 3u) to Rational(-11, 6),
+                listOf(3u, 3u) to Rational(-1, 18),
+                listOf(4u, 3u) to Rational(-9, 6),
+                listOf(0u, 4u) to Rational(-5, 18),
+                listOf(1u, 4u) to Rational(-2, 15),
+                listOf(2u, 4u) to Rational(-1, 96),
+                listOf(3u, 4u) to Rational(1, 21),
+                listOf(4u, 4u) to Rational(-1, 24),
+                listOf(0u, 5u) to Rational(3, 140),
+                listOf(1u, 5u) to Rational(1, 10),
+                listOf(2u, 5u) to Rational(-1, 10),
+                listOf(3u, 5u) to Rational(3, 40),
+                listOf(4u, 5u) to Rational(1, 36),
+                listOf(0u, 6u) to Rational(-3, 40),
+                listOf(1u, 6u) to Rational(-1, 3),
+                listOf(2u, 6u) to Rational(-7, 30),
+                listOf(3u, 6u) to Rational(1, 210),
+                listOf(4u, 6u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 2u),
+            "test 9b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(5u) to Rational(0),
+                listOf(6u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(5u, 1u) to Rational(0),
+                listOf(6u, 1u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(-1, 96),
+                listOf(5u, 2u) to Rational(1, 35),
+                listOf(6u, 2u) to Rational(-1, 60),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(-1, 6),
+                listOf(5u, 3u) to Rational(3, 40),
+                listOf(6u, 3u) to Rational(1, 54),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(-7, 12),
+                listOf(5u, 4u) to Rational(1, 140),
+                listOf(6u, 4u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 2u),
+            "test 10a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-1, 96),
+                listOf(3u, 4u) to Rational(1, 21),
+                listOf(4u, 4u) to Rational(-1, 24),
+                listOf(0u, 5u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(-1, 10),
+                listOf(3u, 5u) to Rational(3, 40),
+                listOf(4u, 5u) to Rational(1, 36),
+                listOf(0u, 6u) to Rational(0),
+                listOf(1u, 6u) to Rational(0),
+                listOf(2u, 6u) to Rational(-7, 30),
+                listOf(3u, 6u) to Rational(1, 210),
+                listOf(4u, 6u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 2u),
+            "test 10b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(-3, 8),
+                listOf(3u) to Rational(-1, 9),
+                listOf(4u) to Rational(1, 24),
+                listOf(5u) to Rational(0),
+                listOf(6u) to Rational(0),
+                listOf(2u, 1u) to Rational(-9, 3),
+                listOf(3u, 1u) to Rational(1, 9),
+                listOf(4u, 1u) to Rational(-11, 12),
+                listOf(5u, 1u) to Rational(0),
+                listOf(6u, 1u) to Rational(0),
+                listOf(2u, 2u) to Rational(-5, 3),
+                listOf(3u, 2u) to Rational(-4, 15),
+                listOf(4u, 2u) to Rational(-1, 96),
+                listOf(5u, 2u) to Rational(0),
+                listOf(6u, 2u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(5u, 3u) to Rational(0),
+                listOf(6u, 3u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(5u, 4u) to Rational(0),
+                listOf(6u, 4u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 2u),
+            "test 11a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(-3, 8),
+                listOf(1u, 2u) to Rational(-1, 3),
+                listOf(2u, 2u) to Rational(1, 4),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(-1, 1),
+                listOf(1u, 3u) to Rational(1, 9),
+                listOf(2u, 3u) to Rational(-11, 6),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(-5, 18),
+                listOf(1u, 4u) to Rational(-2, 15),
+                listOf(2u, 4u) to Rational(-1, 96),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(0u, 5u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(0),
+                listOf(3u, 5u) to Rational(0),
+                listOf(4u, 5u) to Rational(0),
+                listOf(0u, 6u) to Rational(0),
+                listOf(1u, 6u) to Rational(0),
+                listOf(2u, 6u) to Rational(0),
+                listOf(3u, 6u) to Rational(0),
+                listOf(4u, 6u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 2u),
+            "test 11b"
+        )
     }
     @Test
-    @Ignore
+    @OptIn(UnstableKMathAPI::class)
     fun test_Polynomial_nthAntiderivativeWithRespectTo_variablesAndOrders() {
-        // TODO
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(1),
+                listOf(2u) to Rational(-1),
+                listOf(3u) to Rational(1, 3),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 1u)),
+            "test 1"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 0u),
+            "test 2"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-1, 3),
+                listOf(4u) to Rational(1, 12),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 2u),
+            "test 3"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(3u) to Rational(1, 6),
+                listOf(4u) to Rational(-1, 12),
+                listOf(5u) to Rational(1, 60),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 3u),
+            "test 4"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(4u) to Rational(1, 24),
+                listOf(5u) to Rational(-1, 60),
+                listOf(6u) to Rational(1, 360),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 0, 4u),
+            "test 5"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 0u),
+            "test 6"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 1u) to Rational(1),
+                listOf(1u, 1u) to Rational(-2),
+                listOf(2u, 1u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 1u),
+            "test 7"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(1, 2),
+                listOf(1u, 2u) to Rational(-1),
+                listOf(2u, 2u) to Rational(1, 2),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, 1, 2u),
+            "test 8"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf()),
+            "test 9"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u) to Rational(1),
+                listOf(2u) to Rational(-1),
+                listOf(3u) to Rational(1, 3),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(
+                0 to 1u,
+                1 to 0u
+            )),
+            "test 10"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 1u) to Rational(1),
+                listOf(1u, 1u) to Rational(-2),
+                listOf(2u, 1u) to Rational(1),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(1),
+                listOf(1u) to Rational(-2),
+                listOf(2u) to Rational(1),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(
+                0 to 0u,
+                1 to 1u
+            )),
+            "test 11"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(-3, 8),
+                listOf(3u) to Rational(-1, 9),
+                listOf(4u) to Rational(1, 24),
+                listOf(5u) to Rational(-11, 160),
+                listOf(6u) to Rational(3, 5),
+                listOf(2u, 1u) to Rational(-9, 3),
+                listOf(3u, 1u) to Rational(1, 9),
+                listOf(4u, 1u) to Rational(-11, 12),
+                listOf(5u, 1u) to Rational(-1, 60),
+                listOf(6u, 1u) to Rational(-3, 10),
+                listOf(2u, 2u) to Rational(-5, 3),
+                listOf(3u, 2u) to Rational(-4, 15),
+                listOf(4u, 2u) to Rational(-1, 96),
+                listOf(5u, 2u) to Rational(1, 35),
+                listOf(6u, 2u) to Rational(-1, 60),
+                listOf(2u, 3u) to Rational(3, 14),
+                listOf(3u, 3u) to Rational(1, 3),
+                listOf(4u, 3u) to Rational(-1, 6),
+                listOf(5u, 3u) to Rational(3, 40),
+                listOf(6u, 3u) to Rational(1, 54),
+                listOf(2u, 4u) to Rational(-9, 8),
+                listOf(3u, 4u) to Rational(-5, 3),
+                listOf(4u, 4u) to Rational(-7, 12),
+                listOf(5u, 4u) to Rational(1, 140),
+                listOf(6u, 4u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 12a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u, 1u) to Rational(-6, 8),
+                listOf(2u, 1u) to Rational(-1, 3),
+                listOf(3u, 1u) to Rational(1, 6),
+                listOf(4u, 1u) to Rational(-11, 32),
+                listOf(5u, 1u) to Rational(18, 5),
+                listOf(1u, 2u) to Rational(-9, 3),
+                listOf(2u, 2u) to Rational(1, 6),
+                listOf(3u, 2u) to Rational(-11, 6),
+                listOf(4u, 2u) to Rational(-1, 24),
+                listOf(5u, 2u) to Rational(-9, 10),
+                listOf(1u, 3u) to Rational(-10, 9),
+                listOf(2u, 3u) to Rational(-4, 15),
+                listOf(3u, 3u) to Rational(-1, 72),
+                listOf(4u, 3u) to Rational(1, 21),
+                listOf(5u, 3u) to Rational(-1, 30),
+                listOf(1u, 4u) to Rational(3, 28),
+                listOf(2u, 4u) to Rational(1, 4),
+                listOf(3u, 4u) to Rational(-1, 6),
+                listOf(4u, 4u) to Rational(3, 32),
+                listOf(5u, 4u) to Rational(1, 36),
+                listOf(1u, 5u) to Rational(-9, 20),
+                listOf(2u, 5u) to Rational(-1, 1),
+                listOf(3u, 5u) to Rational(-7, 15),
+                listOf(4u, 5u) to Rational(1, 140),
+                listOf(5u, 5u) to Rational(1, 5),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 1u, 1 to 1u)),
+            "test 12b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(-3, 8),
+                listOf(1u, 2u) to Rational(-1, 3),
+                listOf(2u, 2u) to Rational(1, 4),
+                listOf(3u, 2u) to Rational(-11, 16),
+                listOf(4u, 2u) to Rational(9, 1),
+                listOf(0u, 3u) to Rational(-1, 1),
+                listOf(1u, 3u) to Rational(1, 9),
+                listOf(2u, 3u) to Rational(-11, 6),
+                listOf(3u, 3u) to Rational(-1, 18),
+                listOf(4u, 3u) to Rational(-9, 6),
+                listOf(0u, 4u) to Rational(-5, 18),
+                listOf(1u, 4u) to Rational(-2, 15),
+                listOf(2u, 4u) to Rational(-1, 96),
+                listOf(3u, 4u) to Rational(1, 21),
+                listOf(4u, 4u) to Rational(-1, 24),
+                listOf(0u, 5u) to Rational(3, 140),
+                listOf(1u, 5u) to Rational(1, 10),
+                listOf(2u, 5u) to Rational(-1, 10),
+                listOf(3u, 5u) to Rational(3, 40),
+                listOf(4u, 5u) to Rational(1, 36),
+                listOf(0u, 6u) to Rational(-3, 40),
+                listOf(1u, 6u) to Rational(-1, 3),
+                listOf(2u, 6u) to Rational(-7, 30),
+                listOf(3u, 6u) to Rational(1, 210),
+                listOf(4u, 6u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(-11, 8),
+                listOf(4u) to Rational(18, 1),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(-1, 3),
+                listOf(4u, 1u) to Rational(-18, 2),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(3, 7),
+                listOf(1u, 3u) to Rational(16, 8),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(-18, 8),
+                listOf(1u, 4u) to Rational(-10, 1),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 12c"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(5u) to Rational(0),
+                listOf(6u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(5u, 1u) to Rational(0),
+                listOf(6u, 1u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(-1, 96),
+                listOf(5u, 2u) to Rational(1, 35),
+                listOf(6u, 2u) to Rational(-1, 60),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(-1, 6),
+                listOf(5u, 3u) to Rational(3, 40),
+                listOf(6u, 3u) to Rational(1, 54),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(-7, 12),
+                listOf(5u, 4u) to Rational(1, 140),
+                listOf(6u, 4u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 13a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(5u, 1u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(5u, 2u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(-1, 72),
+                listOf(4u, 3u) to Rational(1, 21),
+                listOf(5u, 3u) to Rational(-1, 30),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(-1, 6),
+                listOf(4u, 4u) to Rational(3, 32),
+                listOf(5u, 4u) to Rational(1, 36),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(0),
+                listOf(3u, 5u) to Rational(-7, 15),
+                listOf(4u, 5u) to Rational(1, 140),
+                listOf(5u, 5u) to Rational(1, 5),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 1u, 1 to 1u)),
+            "test 13b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(0),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-1, 96),
+                listOf(3u, 4u) to Rational(1, 21),
+                listOf(4u, 4u) to Rational(-1, 24),
+                listOf(0u, 5u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(-1, 10),
+                listOf(3u, 5u) to Rational(3, 40),
+                listOf(4u, 5u) to Rational(1, 36),
+                listOf(0u, 6u) to Rational(0),
+                listOf(1u, 6u) to Rational(0),
+                listOf(2u, 6u) to Rational(-7, 30),
+                listOf(3u, 6u) to Rational(1, 210),
+                listOf(4u, 6u) to Rational(1, 6),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(0),
+                listOf(1u) to Rational(0),
+                listOf(2u) to Rational(0),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(0),
+                listOf(1u, 1u) to Rational(0),
+                listOf(2u, 1u) to Rational(0),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(0),
+                listOf(1u, 2u) to Rational(0),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(4, 7),
+                listOf(4u, 2u) to Rational(-4, 8),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(-16, 8),
+                listOf(3u, 3u) to Rational(12, 8),
+                listOf(4u, 3u) to Rational(5, 9),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(-14, 2),
+                listOf(3u, 4u) to Rational(1, 7),
+                listOf(4u, 4u) to Rational(15, 3),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 13c"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(2u) to Rational(-3, 8),
+                listOf(3u) to Rational(-1, 9),
+                listOf(4u) to Rational(1, 24),
+                listOf(5u) to Rational(0),
+                listOf(6u) to Rational(0),
+                listOf(2u, 1u) to Rational(-9, 3),
+                listOf(3u, 1u) to Rational(1, 9),
+                listOf(4u, 1u) to Rational(-11, 12),
+                listOf(5u, 1u) to Rational(0),
+                listOf(6u, 1u) to Rational(0),
+                listOf(2u, 2u) to Rational(-5, 3),
+                listOf(3u, 2u) to Rational(-4, 15),
+                listOf(4u, 2u) to Rational(-1, 96),
+                listOf(5u, 2u) to Rational(0),
+                listOf(6u, 2u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(5u, 3u) to Rational(0),
+                listOf(6u, 3u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(5u, 4u) to Rational(0),
+                listOf(6u, 4u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 2u)),
+            "test 14a"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(1u, 1u) to Rational(-6, 8),
+                listOf(2u, 1u) to Rational(-1, 3),
+                listOf(3u, 1u) to Rational(1, 6),
+                listOf(4u, 1u) to Rational(0),
+                listOf(5u, 1u) to Rational(0),
+                listOf(1u, 2u) to Rational(-9, 3),
+                listOf(2u, 2u) to Rational(1, 6),
+                listOf(3u, 2u) to Rational(-11, 6),
+                listOf(4u, 2u) to Rational(0),
+                listOf(5u, 2u) to Rational(0),
+                listOf(1u, 3u) to Rational(-10, 9),
+                listOf(2u, 3u) to Rational(-4, 15),
+                listOf(3u, 3u) to Rational(-1, 72),
+                listOf(4u, 3u) to Rational(0),
+                listOf(5u, 3u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(5u, 4u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(0),
+                listOf(3u, 5u) to Rational(0),
+                listOf(4u, 5u) to Rational(0),
+                listOf(5u, 5u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(0 to 1u, 1 to 1u)),
+            "test 14b"
+        )
+        assertEquals(
+            NumberedPolynomialAsIs(
+                listOf(0u, 2u) to Rational(-3, 8),
+                listOf(1u, 2u) to Rational(-1, 3),
+                listOf(2u, 2u) to Rational(1, 4),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(-1, 1),
+                listOf(1u, 3u) to Rational(1, 9),
+                listOf(2u, 3u) to Rational(-11, 6),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(-5, 18),
+                listOf(1u, 4u) to Rational(-2, 15),
+                listOf(2u, 4u) to Rational(-1, 96),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+                listOf(0u, 5u) to Rational(0),
+                listOf(1u, 5u) to Rational(0),
+                listOf(2u, 5u) to Rational(0),
+                listOf(3u, 5u) to Rational(0),
+                listOf(4u, 5u) to Rational(0),
+                listOf(0u, 6u) to Rational(0),
+                listOf(1u, 6u) to Rational(0),
+                listOf(2u, 6u) to Rational(0),
+                listOf(3u, 6u) to Rational(0),
+                listOf(4u, 6u) to Rational(0),
+            ),
+            NumberedPolynomialAsIs(
+                listOf<UInt>() to Rational(-6, 8),
+                listOf(1u) to Rational(-2, 3),
+                listOf(2u) to Rational(1, 2),
+                listOf(3u) to Rational(0),
+                listOf(4u) to Rational(0),
+                listOf(0u, 1u) to Rational(-18, 3),
+                listOf(1u, 1u) to Rational(2, 3),
+                listOf(2u, 1u) to Rational(-11, 1),
+                listOf(3u, 1u) to Rational(0),
+                listOf(4u, 1u) to Rational(0),
+                listOf(0u, 2u) to Rational(-10, 3),
+                listOf(1u, 2u) to Rational(-8, 5),
+                listOf(2u, 2u) to Rational(-1, 8),
+                listOf(3u, 2u) to Rational(0),
+                listOf(4u, 2u) to Rational(0),
+                listOf(0u, 3u) to Rational(0),
+                listOf(1u, 3u) to Rational(0),
+                listOf(2u, 3u) to Rational(0),
+                listOf(3u, 3u) to Rational(0),
+                listOf(4u, 3u) to Rational(0),
+                listOf(0u, 4u) to Rational(0),
+                listOf(1u, 4u) to Rational(0),
+                listOf(2u, 4u) to Rational(0),
+                listOf(3u, 4u) to Rational(0),
+                listOf(4u, 4u) to Rational(0),
+            ).nthAntiderivativeWithRespectTo(RationalField, mapOf(1 to 2u)),
+            "test 14c"
+        )
     }
 }
\ No newline at end of file