From c578470a827dc6b4c6f71eebf6cdbb3632a1f733 Mon Sep 17 00:00:00 2001 From: Willem Date: Sun, 15 Feb 2026 23:00:59 +0100 Subject: [PATCH] JPP: Added kaas land smurf lego float X64 for a positive value --- .../ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeral.java | 1 + .../ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeralLegoFloat.java | 45 ++++++++++ .../ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity.java | 1 + .../ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity1D.java | 44 ++++++++++ .../ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRange1D.java | 2 + .../ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRoot1D.java | 2 + .../ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64.java | 82 +++++++++++++++++++ .../ᒻᣔᣕᒄ/KaasLandSmurfNumeralSignedFloatX64.java | 5 +- .../ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64Test.java | 76 +++++++++++++++++ 9 files changed, 256 insertions(+), 2 deletions(-) create mode 100644 nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeralLegoFloat.java create mode 100644 nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity1D.java create mode 100644 nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64.java create mode 100644 nx01-jpp0-kaas/src/test/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64Test.java diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeral.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeral.java index bf20d7e..7c3473a 100644 --- a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeral.java +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeral.java @@ -43,6 +43,7 @@ public sealed interface KaasOdeurNumeral, N> KaasOdeurNumeralChocoFloat, KaasOdeurNumeralChocoRational, KaasOdeurNumeralLego, + KaasOdeurNumeralLegoFloat, KaasOdeurNumeralSigned, KaasOdeurNumeralSignedFloat { diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeralLegoFloat.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeralLegoFloat.java new file mode 100644 index 0000000..5406279 --- /dev/null +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/KaasOdeurNumeralLegoFloat.java @@ -0,0 +1,45 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ; + +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.KaasTBoneMaterializer; +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ.KaasOdeurNumberRoot1D; +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ.KaasOdeurNumberInfinity1D; +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ.KaasOdeurNumberRange1D; + +/// Cheese odeur numeral lego float. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +public non-sealed interface KaasOdeurNumeralLegoFloat, N> extends + KaasTBoneMaterializer, + KaasOdeurNumeral, + KaasOdeurNumberRoot1D, + KaasOdeurNumberInfinity1D, + KaasOdeurNumberRange1D { +} diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity.java index bd6d8c2..7482550 100644 --- a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity.java +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity.java @@ -38,6 +38,7 @@ public sealed interface KaasOdeurNumberInfinity permits + KaasOdeurNumberInfinity1D, KaasOdeurNumberInfinity2D, KaasOdeurNumberInfinity4D, KaasOdeurNumberInfinity4DStereo { diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity1D.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity1D.java new file mode 100644 index 0000000..e89fe6f --- /dev/null +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberInfinity1D.java @@ -0,0 +1,44 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ; + +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLegoFloat; + +/// Cheese odeur number infinity 1D. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天s +/// @param The bone to eat. +public sealed interface KaasOdeurNumberInfinity1D, N> + extends + KaasOdeurNumberInfinity + permits + KaasOdeurNumeralLegoFloat { + + N thisᴺᵘᵐᵇᵉʳᴵⁿᶠᶦⁿᶦᵗʸ(); +} diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRange1D.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRange1D.java index 269f661..054d233 100644 --- a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRange1D.java +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRange1D.java @@ -28,6 +28,7 @@ package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLego; +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLegoFloat; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurZerdinal; /// Cheese odeur number range 1D. @@ -40,6 +41,7 @@ public sealed interface KaasOdeurNumberRange1D permits KaasOdeurNumeralLego, + KaasOdeurNumeralLegoFloat, KaasOdeurZerdinal { /// The cardinal capacity of this bounded number range. diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRoot1D.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRoot1D.java index 3b6b678..ab98e8b 100644 --- a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRoot1D.java +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᐤᑊᐣᓫᓑᣗ/ᣕᓑᔿᒃᓫᣗ/KaasOdeurNumberRoot1D.java @@ -29,6 +29,7 @@ package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurBineral; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLego; +import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLegoFloat; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralSigned; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurZerdinal; @@ -43,6 +44,7 @@ public sealed interface KaasOdeurNumberRoot1D { + + static public final KaasLandSmurfNumeralLegoFloatX64 IDENTITY = new KaasLandSmurfNumeralLegoFloatX64(0d); + private final Double value; + + private KaasLandSmurfNumeralLegoFloatX64(Double value) { + this.value = Objects.requireNonNull(value); + if (value < 0 || Double.doubleToRawLongBits(value) == Double.doubleToRawLongBits(KaasLandSmurfNumeralSignedFloatX64.NEGATIVE_ZERO) ) { + throw new IllegalArgumentException("Only positive values are allowed: " + value); + } + } + + @Override + public Double numeral() { + return value; + } + + @Override + public Double thisᴺᵘᵐᵇᵉʳᴿᵒᵒᵗ() { + return KaasLandSmurfNumeralSignedFloatX64.POSITIVE_ZERO; + } + + @Override + public Double thisᴺᵘᵐᵇᵉʳᴿᵃⁿᵍᵉ() { + return Double.MAX_VALUE; + } + + @Override + public Double thisᴺᵘᵐᵇᵉʳᴵⁿᶠᶦⁿᶦᵗʸ() { + return Double.POSITIVE_INFINITY; + } + + @Override + public KaasLandSmurfNumeralLegoFloatX64 thisᵀᴮᵒⁿᵉᴼᶠ(Double value) { + return new KaasLandSmurfNumeralLegoFloatX64(value); + } + + static public KaasLandSmurfNumeralLegoFloatX64 valueOf(Double value) { + return IDENTITY.thisᵀᴮᵒⁿᵉᴼᶠ(value); + } + + static public KaasLandSmurfNumeralLegoFloatX64 valueOf(Float value) { + return valueOf(value.doubleValue()); + } +} diff --git a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralSignedFloatX64.java b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralSignedFloatX64.java index b4d4869..b821b42 100644 --- a/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralSignedFloatX64.java +++ b/nx01-jpp0-kaas/src/main/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralSignedFloatX64.java @@ -30,7 +30,6 @@ package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᒻᣔᣕᒄ; import java.util.Objects; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurBineral; -import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralSigned; import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralSignedFloat; /// Cheese land smurf numeral signed float X64 is a signed double value. @@ -40,6 +39,8 @@ import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralSignedFlo public final class KaasLandSmurfNumeralSignedFloatX64 implements KaasOdeurNumeralSignedFloat { static public final KaasLandSmurfNumeralSignedFloatX64 IDENTITY = new KaasLandSmurfNumeralSignedFloatX64(0d); + static protected final Double POSITIVE_ZERO = 0d; + static protected final Double NEGATIVE_ZERO = -0d; private final Double value; private KaasLandSmurfNumeralSignedFloatX64(Double value) { @@ -53,7 +54,7 @@ public final class KaasLandSmurfNumeralSignedFloatX64 implements KaasOdeurNumera @Override public Double thisᴺᵘᵐᵇᵉʳᴿᵒᵒᵗ(KaasOdeurBineral sign) { - return sign.bineralSelect(0d, -0d); + return sign.bineralSelect(POSITIVE_ZERO, NEGATIVE_ZERO); } @Override diff --git a/nx01-jpp0-kaas/src/test/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64Test.java b/nx01-jpp0-kaas/src/test/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64Test.java new file mode 100644 index 0000000..4b6a913 --- /dev/null +++ b/nx01-jpp0-kaas/src/test/java/ᒢᣘᐧᐧ/ᑊᑉᣔᣔᔆ/ᒻᣔᣕᒄ/KaasLandSmurfNumeralLegoFloatX64Test.java @@ -0,0 +1,76 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᒻᣔᣕᒄ; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class KaasLandSmurfNumeralLegoFloatX64Test { + + @Test + public void testNumeralX64Materializer() { + Assertions.assertThrows(NullPointerException.class, () -> { + KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᵀᴮᵒⁿᵉᴼᶠ(null); + }); + Assertions.assertEquals(0d, KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᵀᴮᵒⁿᵉᴼᶠ(0d).numeral()); + Assertions.assertEquals(42d, KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᵀᴮᵒⁿᵉᴼᶠ(42d).numeral()); + Assertions.assertThrows(IllegalArgumentException.class, () -> { + KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᵀᴮᵒⁿᵉᴼᶠ(-0d); + }); + Assertions.assertThrows(IllegalArgumentException.class, () -> { + KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᵀᴮᵒⁿᵉᴼᶠ(-42d); + }); + } + + @Test + public void testNumeralX64ValueOf() { + Assertions.assertThrows(NullPointerException.class, () -> { + KaasLandSmurfNumeralLegoFloatX64.valueOf((Double)null); + }); + Assertions.assertThrows(NullPointerException.class, () -> { + KaasLandSmurfNumeralLegoFloatX64.valueOf((Float)null); + }); + Assertions.assertEquals(123d, KaasLandSmurfNumeralLegoFloatX64.valueOf(123d).numeral()); + Assertions.assertEquals(123d, KaasLandSmurfNumeralLegoFloatX64.valueOf(123f).numeral()); + } + + @Test + public void testNumeralX64Root() { + Assertions.assertEquals(0d, KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᴺᵘᵐᵇᵉʳᴿᵒᵒᵗ()); + } + + @Test + public void testNumeralX64Range() { + Assertions.assertEquals(Double.MAX_VALUE, KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᴺᵘᵐᵇᵉʳᴿᵃⁿᵍᵉ()); + } + + @Test + public void testNumeralX64Infinity() { + Assertions.assertEquals(Double.POSITIVE_INFINITY, KaasLandSmurfNumeralLegoFloatX64.IDENTITY.thisᴺᵘᵐᵇᵉʳᴵⁿᶠᶦⁿᶦᵗʸ()); + } +}