JPP: Added kaas land smurf lego float X64 for a positive value
All checks were successful
Run test asserts / Test-Asserts (push) Successful in 1m45s

This commit is contained in:
Willem Cazander 2026-02-15 23:00:59 +01:00
parent b2675e1e0a
commit c578470a82
9 changed files with 256 additions and 2 deletions

View file

@ -43,6 +43,7 @@ public sealed interface KaasOdeurNumeral<T extends KaasOdeurNumeral<T, N>, N>
KaasOdeurNumeralChocoFloat,
KaasOdeurNumeralChocoRational,
KaasOdeurNumeralLego,
KaasOdeurNumeralLegoFloat,
KaasOdeurNumeralSigned,
KaasOdeurNumeralSignedFloat {

View file

@ -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<T extends KaasOdeurNumeralLegoFloat<T, N>, N> extends
KaasTBoneMaterializer<T, N>,
KaasOdeurNumeral<T, N>,
KaasOdeurNumberRoot1D<T, N>,
KaasOdeurNumberInfinity1D<T, N>,
KaasOdeurNumberRange1D<T, N> {
}

View file

@ -38,6 +38,7 @@ public sealed interface KaasOdeurNumberInfinity<T extends KaasOdeurNumberInfinit
extends
KaasTBone<T>
permits
KaasOdeurNumberInfinity1D,
KaasOdeurNumberInfinity2D,
KaasOdeurNumberInfinity4D,
KaasOdeurNumberInfinity4DStereo {

View file

@ -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 <T> The bone to eat.
public sealed interface KaasOdeurNumberInfinity1D<T extends KaasOdeurNumberInfinity1D<T, N>, N>
extends
KaasOdeurNumberInfinity<T>
permits
KaasOdeurNumeralLegoFloat {
N thisᴺᵘᵐᵇᵉʳᴵⁿᶠᶦⁿᶦᵗʸ();
}

View file

@ -28,6 +28,7 @@
package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLego;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLegoFloat;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurZerdinal;
/// Cheese odeur number range 1D.
@ -40,6 +41,7 @@ public sealed interface KaasOdeurNumberRange1D<T extends KaasOdeurNumberRange1D<
KaasOdeurNumberRange<T>
permits
KaasOdeurNumeralLego,
KaasOdeurNumeralLegoFloat,
KaasOdeurZerdinal {
/// The cardinal capacity of this bounded number range.

View file

@ -29,6 +29,7 @@ package ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.ᣕᓑᔿᒃᓫᣗ;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurBineral;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLego;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLegoFloat;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralSigned;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurZerdinal;
@ -43,6 +44,7 @@ public sealed interface KaasOdeurNumberRoot1D<T extends KaasOdeurNumberRoot1D<T,
permits
KaasOdeurBineral,
KaasOdeurNumeralLego,
KaasOdeurNumeralLegoFloat,
KaasOdeurNumeralSigned,
KaasOdeurZerdinal {

View file

@ -0,0 +1,82 @@
/*
* 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 java.util.Objects;
import ᒢᣘᐧᐧ.ᑊᑉᣔᣔᔆ.ᐤᑊᐣᓫᓑᣗ.KaasOdeurNumeralLegoFloat;
/// Cheese land smurf numeral lego float X64 is a positive double value.
///
/// @author للَّٰهِilLצسُو
/// @version ©Δ 仙上主天
public final class KaasLandSmurfNumeralLegoFloatX64 implements KaasOdeurNumeralLegoFloat<KaasLandSmurfNumeralLegoFloatX64, Double> {
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());
}
}

View file

@ -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<KaasLandSmurfNumeralSignedFloatX64, Double> {
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

View file

@ -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ᴺᵘᵐᵇᵉʳᴵⁿᶠᶦⁿᶦᵗʸ());
}
}