Lines Matching refs:assert

64         assert(payload >>> 51 == 0,  in NaN()
133 assert(isNaN(a));
134 assert(getNaNPayload(a) == 1_000_000);
145 assert(xl & 0x8_0000_0000_0000UL); //non-signaling bit, bit 52
146 assert((xl & 0x7FF0_0000_0000_0000UL) == 0x7FF0_0000_0000_0000UL); //all exp bits set
218 assert(isNaN(a));
219 assert(getNaNPayload(a) == 1_000_000);
227 static assert(isNaN(a));
228 static assert(getNaNPayload(a) == 1_000_000);
230 assert(isIdentical(b, a));
234 assert(isIdentical(real.nan, nanNaN));
238 assert(isIdentical(real.init, initNaN));
250 assert(getNaNPayload(nan4) == 0x789_ABCD_EF12_3456); in debug()
254 assert(getNaNPayload(nan4) == 0x1_ABCD_EF12_3456); in debug()
257 assert(getNaNPayload(nan5) == 0x1_ABCD_EF12_3456); in debug()
259 assert(getNaNPayload(nan6) == 0x12_3456); in debug()
261 assert(getNaNPayload(nan4) == 0xFABCD); in debug()
263 assert(getNaNPayload(nan6) == 0xFABCD); in debug()
265 assert(getNaNPayload(nan5) == 0x0000_0000_3456); in debug()
417 assert(0, "nextUp not implemented"); in nextUp()
481 assert(nextUp(1.0 - 1.0e-6).feqrel(0.999999) > 16);
482 assert(nextUp(1.0 - real.epsilon).feqrel(1.0) > 16);
520 assert( nextDown(1.0 + real.epsilon) == 1.0);
534 assert(isIdentical(nextUp(NaN(0xABC)), NaN(0xABC)));
537 assert( nextUp(-real.infinity) == -real.max );
538 assert( nextUp(-1.0L-real.epsilon) == -1.0 );
539 assert( nextUp(-2.0L) == -2.0 + real.epsilon);
540 static assert( nextUp(-real.infinity) == -real.max );
541 static assert( nextUp(-1.0L-real.epsilon) == -1.0 );
542 static assert( nextUp(-2.0L) == -2.0 + real.epsilon);
544 assert( nextUp(-real.min_normal) == -real.min_normal*(1-real.epsilon) );
545 assert( nextUp(-real.min_normal*(1-real.epsilon)) == -real.min_normal*(1-2*real.epsilon) );
546 assert( isIdentical(-0.0L, nextUp(-real.min_normal*real.epsilon)) );
547 assert( nextUp(-0.0L) == real.min_normal*real.epsilon );
548 assert( nextUp(0.0L) == real.min_normal*real.epsilon );
549 assert( nextUp(real.min_normal*(1-real.epsilon)) == real.min_normal );
550 assert( nextUp(real.min_normal) == real.min_normal*(1+real.epsilon) );
551 static assert( nextUp(-real.min_normal) == -real.min_normal*(1-real.epsilon) );
552 … static assert( nextUp(-real.min_normal*(1-real.epsilon)) == -real.min_normal*(1-2*real.epsilon) );
553 static assert( -0.0L is nextUp(-real.min_normal*real.epsilon) );
554 static assert( nextUp(-0.0L) == real.min_normal*real.epsilon );
555 static assert( nextUp(0.0L) == real.min_normal*real.epsilon );
556 static assert( nextUp(real.min_normal*(1-real.epsilon)) == real.min_normal );
557 static assert( nextUp(real.min_normal) == real.min_normal*(1+real.epsilon) );
559 assert( nextUp(1.0L) == 1.0 + real.epsilon );
560 assert( nextUp(2.0L-real.epsilon) == 2.0 );
561 assert( nextUp(real.max) == real.infinity );
562 assert( nextUp(real.infinity)==real.infinity );
563 static assert( nextUp(1.0L) == 1.0 + real.epsilon );
564 static assert( nextUp(2.0L-real.epsilon) == 2.0 );
565 static assert( nextUp(real.max) == real.infinity );
566 static assert( nextUp(real.infinity)==real.infinity );
568 static assert(nextUp(nextDown(cast(real) double.max)) == cast(real) double.max);
572 assert(isIdentical(nextUp(n), n));
574 assert( nextUp(-double.infinity) == -double.max );
575 assert( nextUp(-1-double.epsilon) == -1.0 );
576 assert( nextUp(-2.0) == -2.0 + double.epsilon);
579 assert( nextUp(-double.min_normal) == -double.min_normal*(1-double.epsilon) );
580assert( nextUp(-double.min_normal*(1-double.epsilon)) == -double.min_normal*(1-2*double.epsilon) );
581 assert( isIdentical(-0.0, nextUp(-double.min_normal*double.epsilon)) );
582 assert( nextUp(0.0) == double.min_normal*double.epsilon );
583 assert( nextUp(-0.0) == double.min_normal*double.epsilon );
584 assert( nextUp(double.min_normal*(1-double.epsilon)) == double.min_normal );
585 assert( nextUp(double.min_normal) == double.min_normal*(1+double.epsilon) );
587 assert( nextUp(1.0) == 1.0 + double.epsilon );
588 assert( nextUp(2.0-double.epsilon) == 2.0 );
589 assert( nextUp(double.max) == double.infinity );
592 assert(isIdentical(nextUp(fn), fn));
595 assert( nextUp(f1) == f);
598 assert( nextUp(f1) == f );
600 assert( nextUp(f1) == float.min_normal*float.epsilon);
601 assert( nextUp(float.infinity)==float.infinity );
603 assert(nextDown(1.0L+real.epsilon)==1.0);
604 assert(nextDown(1.0+double.epsilon)==1.0);
606 assert(nextDown(f)==1.0);
607 assert(nextafter(1.0+real.epsilon, -real.infinity)==1.0);
613 static assert(nextUp(double.nan) is double.nan);
615 static assert( nextUp(-double.infinity) == -double.max );
616 static assert( nextUp(-1-double.epsilon) == -1.0 );
617 static assert( nextUp(-2.0) == -2.0 + double.epsilon);
620 static assert( nextUp(-double.min_normal) == -double.min_normal*(1-double.epsilon) );
621 …static assert( nextUp(-double.min_normal*(1-double.epsilon)) == -double.min_normal*(1-2*double.eps…
622 static assert( -0.0 is nextUp(-double.min_normal*double.epsilon) );
623 static assert( nextUp(0.0) == double.min_normal*double.epsilon );
624 static assert( nextUp(-0.0) == double.min_normal*double.epsilon );
625 static assert( nextUp(double.min_normal*(1-double.epsilon)) == double.min_normal );
626 static assert( nextUp(double.min_normal) == double.min_normal*(1+double.epsilon) );
628 static assert( nextUp(1.0) == 1.0 + double.epsilon );
629 static assert( nextUp(2.0-double.epsilon) == 2.0 );
630 static assert( nextUp(double.max) == double.infinity );
634 static assert(nextUp(float.nan) is float.nan);
635 static assert(nextUp(-float.min_normal) == -float.min_normal*(1-float.epsilon));
636 static assert(nextUp(1.0f) == 1.0f+float.epsilon);
637 static assert(nextUp(-0.0f) == float.min_normal*float.epsilon);
638 static assert(nextUp(float.infinity)==float.infinity);
639 static assert(nextDown(1.0L+real.epsilon)==1.0);
640 static assert(nextDown(1.0+double.epsilon)==1.0);
641 static assert(nextDown(1.0f+float.epsilon)==1.0);
642 static assert(nextafter(1.0+real.epsilon, -real.infinity)==1.0);
687 assert(is(typeof(nextafter(a, a)) == float));
688 assert(nextafter(a, a.infinity) > a);
689 assert(isNaN(nextafter(a, a.nan)));
690 assert(isNaN(nextafter(a.nan, a)));
693 assert(is(typeof(nextafter(b, b)) == double));
694 assert(nextafter(b, b.infinity) > b);
695 assert(isNaN(nextafter(b, b.nan)));
696 assert(isNaN(nextafter(b.nan, b)));
699 assert(is(typeof(nextafter(c, c)) == real));
700 assert(nextafter(c, c.infinity) > c);
701 assert(isNaN(nextafter(c, c.nan)));
702 assert(isNaN(nextafter(c.nan, c)));
711 static assert(is(typeof(nextafter(a, a)) == float));
712 static assert(nextafter(a, a.infinity) > a);
713 static assert(isNaN(nextafter(a, a.nan)));
714 static assert(isNaN(nextafter(a.nan, a)));
717 static assert(is(typeof(nextafter(b, b)) == double));
718 static assert(nextafter(b, b.infinity) > b);
719 static assert(isNaN(nextafter(b, b.nan)));
720 static assert(isNaN(nextafter(b.nan, b)));
723 static assert(is(typeof(nextafter(c, c)) == real));
724 static assert(nextafter(c, c.infinity) > c);
725 static assert(isNaN(nextafter(c, c.nan)));
726 static assert(isNaN(nextafter(c.nan, c)));
729 static assert(negZero == -0.0L);
730 static assert(signbit(negZero));
732 static assert(nextafter(c, c) == c);
759 assert(fdim(2.0, 0.0) == 2.0);
760 assert(fdim(-2.0, 0.0) == 0.0);
761 assert(fdim(real.infinity, 2.0) == real.infinity);
762 assert(isNaN(fdim(real.nan, 2.0)));
763 assert(isNaN(fdim(2.0, real.nan)));
764 assert(isNaN(fdim(real.nan, real.nan)));
791 assert(fmax(F(0.0), F(2.0)) == 2.0);
792 assert(fmax(F(-2.0), 0.0) == F(0.0));
793 assert(fmax(F.infinity, F(2.0)) == F.infinity);
794 assert(fmax(F.nan, F(2.0)) == F(2.0));
795 assert(fmax(F(2.0), F.nan) == F(2.0));
823 assert(fmin(F(0.0), F(2.0)) == 0.0);
824 assert(fmin(F(-2.0), F(0.0)) == -2.0);
825 assert(fmin(F.infinity, F(2.0)) == 2.0);
826 assert(fmin(F.nan, F(2.0)) == 2.0);
827 assert(fmin(F(2.0), F.nan) == 2.0);
843 assert(fma(0.0, 2.0, 2.0) == 2.0);
844 assert(fma(2.0, 2.0, 2.0) == 6.0);
845 assert(fma(real.infinity, 2.0, 2.0) == real.infinity);
846 assert(fma(real.nan, 2.0, 2.0) is real.nan);
847 assert(fma(2.0, 2.0, real.nan) is real.nan);
925 static assert(false, "Not implemented for this architecture");
932 assert(feqrel(2.0, 2.0) == 53);
933 assert(feqrel(2.0f, 2.0f) == 24);
934 assert(feqrel(2.0, double.nan) == 0);
940 assert(feqrel(2.0, 2.00001) > 16);
942 assert(feqrel(2.0, 2.00000000001) > 33);
950 assert(feqrel(F.max, F.max) == F.mant_dig); in testFeqrel()
951 assert(feqrel!(F)(0.0, 0.0) == F.mant_dig); in testFeqrel()
952 assert(feqrel(F.infinity, F.infinity) == F.mant_dig); in testFeqrel()
958 assert(feqrel!(F)(1.0 + w * F.epsilon, 1.0) == F.mant_dig-i); in testFeqrel()
959 assert(feqrel!(F)(1.0 - w * F.epsilon, 1.0) == F.mant_dig-i); in testFeqrel()
960 assert(feqrel!(F)(1.0, 1 + (w-1) * F.epsilon) == F.mant_dig - i + 1); in testFeqrel()
964 assert(feqrel!(F)(1.5+F.epsilon, 1.5) == F.mant_dig-1); in testFeqrel()
965 assert(feqrel!(F)(1.5-F.epsilon, 1.5) == F.mant_dig-1); in testFeqrel()
966 assert(feqrel!(F)(1.5-F.epsilon, 1.5+F.epsilon) == F.mant_dig-2); in testFeqrel()
970 assert(feqrel!(F)(0x1.Bp+84, 0x1.B8p+84) == 5); in testFeqrel()
971 assert(feqrel!(F)(0x1.8p+10, 0x1.Cp+10) == 2); in testFeqrel()
972 assert(feqrel!(F)(1.5 * (1 - F.epsilon), 1.0L) == 2); in testFeqrel()
973 assert(feqrel!(F)(1.5, 1.0) == 1); in testFeqrel()
974 assert(feqrel!(F)(2 * (1 - F.epsilon), 1.0L) == 1); in testFeqrel()
977 assert(feqrel(F.max, F.infinity) == 0); in testFeqrel()
978 assert(feqrel!(F)(2 * (1 - F.epsilon), 1.0L) == 1); in testFeqrel()
979 assert(feqrel!(F)(1.0, 2.0) == 0); in testFeqrel()
980 assert(feqrel!(F)(4.0, 1.0) == 0); in testFeqrel()
983 assert(feqrel(F.nan, F.nan) == 0); in testFeqrel()
984 assert(feqrel!(F)(0.0L, -F.nan) == 0); in testFeqrel()
985 assert(feqrel(F.nan, F.infinity) == 0); in testFeqrel()
986 assert(feqrel(F.infinity, -F.infinity) == 0); in testFeqrel()
987 assert(feqrel(F.max, -F.max) == 0); in testFeqrel()
989 assert(feqrel(F.min_normal / 8, F.min_normal / 17) == 3); in testFeqrel()
996 assert(feqrel(7.1824L, 7.1824L) == real.mant_dig);
1111 assert(approxEqual(1.0, 1.0099));
1112 assert(!approxEqual(1.0, 1.011));
1113 assert(approxEqual(0.00001, 0.0));
1114 assert(!approxEqual(0.00002, 0.0));
1116 assert(approxEqual(3.0, [3, 3.01, 2.99])); // several reference values is strange
1117 assert(approxEqual([3, 3.01, 2.99], 3.0)); // better
1121 assert(approxEqual(arr1, arr2));
1131 assert(a[0].approxEqual(b));
1132 assert(!b.approxEqual(a[0]));
1133 assert(a.approxEqual(b));
1134 assert(!b.approxEqual(a));
1139 assert(!approxEqual(0.0,1e-15,1e-9,0.0));
1140 assert(approxEqual(0.0,1e-15,1e-9,1e-9));
1141 assert(!approxEqual(1.0,3.0,0.0,1.0));
1143 assert(approxEqual(1.00000000099,1.0,1e-9,0.0));
1144 assert(!approxEqual(1.0000000011,1.0,1e-9,0.0));
1150 assert(approxEqual(1000.0,1010.0));
1151 assert(approxEqual(9_090_000_000.0,9_000_000_000.0));
1152 assert(approxEqual(0.0,1e30,1.0));
1153 assert(approxEqual(0.00001,1e-30));
1154 assert(!approxEqual(-1e-30,1e-30,1e-2,0.0));
1160 assert(approxEqual(10, a));
1162 assert(!approxEqual(3, 0));
1163 assert(approxEqual(3, 3));
1164 assert(approxEqual(3.0, 3));
1165 assert(approxEqual(3, 3.0));
1167 assert(approxEqual(0.0,0.0));
1168 assert(approxEqual(-0.0,0.0));
1169 assert(approxEqual(0.0f,0.0));
1175 assert(num == real.infinity);
1176 assert(approxEqual(num, real.infinity));
1178 assert(num == -real.infinity);
1179 assert(approxEqual(num, -real.infinity));
1181 assert(!approxEqual(1,real.nan));
1182 assert(!approxEqual(real.nan,real.max));
1183 assert(!approxEqual(real.nan,real.nan));
1188 assert(!approxEqual([1.0,2.0,3.0],[1.0,2.0]));
1189 assert(!approxEqual([1.0,2.0],[1.0,2.0,3.0]));
1191 assert(approxEqual!(real[],real[])([],[]));
1192 assert(approxEqual(cast(real[])[],cast(real[])[]));
1309 assert(isClose(1.0,0.999_999_999));
1310 assert(isClose(0.001, 0.000_999_999_999));
1311 assert(isClose(1_000_000_000.0,999_999_999.0));
1313 assert(isClose(17.123_456_789, 17.123_456_78));
1314 assert(!isClose(17.123_456_789, 17.123_45));
1317 assert(isClose(17.123_456_789, 17.123_45, 1e-6));
1318 assert(!isClose(17.123_456_789, 17.123_45, 1e-7));
1321 assert(!isClose(1e-100, 0.0));
1322 assert(isClose(1e-100, 0.0, 0.0, 1e-90));
1323 assert(!isClose(1e-10, -1e-10));
1324 assert(isClose(1e-10, -1e-10, 0.0, 1e-9));
1325 assert(!isClose(1e-300, 1e-298));
1326 assert(isClose(1e-300, 1e-298, 0.0, 1e-200));
1329 assert(isClose(1.0f, 0.999_99f));
1330 assert(!isClose(1.0, 0.999_99));
1332 assert(!isClose(1.0L, 0.999_999_999L));
1338 assert(isClose([1.0, 2.0, 3.0], [0.999_999_999, 2.000_000_001, 3.0]));
1339 assert(!isClose([1.0, 2.0], [0.999_999_999, 2.000_000_001, 3.0]));
1340 assert(!isClose([1.0, 2.0, 3.0], [0.999_999_999, 2.000_000_001]));
1342 assert(isClose([2.0, 1.999_999_999, 2.000_000_001], 2.0));
1343 assert(isClose(2.0, [2.0, 1.999_999_999, 2.000_000_001]));
1348 assert(!isClose([1.0, 2.0, 3.0], [0.999_999_999, 3.0, 3.0]));
1349 assert(!isClose([2.0, 1.999_999, 2.000_000_001], 2.0));
1350 assert(!isClose(2.0, [2.0, 1.999_999_999, 2.000_000_999]));
1357 assert(isClose(a,b));
1359 assert(isClose(1.00001f,1.000019f));
1360 assert(isClose(1.00001f,1.000019));
1361 assert(isClose(1.00001,1.000019f));
1362 assert(!isClose(1.00001,1.000019));
1366 assert(isClose(a1,a2));
1373 assert(isClose(arr1, arr2));
1378 assert(!isClose(1000.0,1010.0));
1379 assert(!isClose(9_090_000_000.0,9_000_000_000.0));
1380 assert(isClose(0.0,1e30,1.0));
1381 assert(!isClose(0.00001,1e-30));
1382 assert(!isClose(-1e-30,1e-30,1e-2,0.0));
1387 assert(!isClose(3, 0));
1388 assert(isClose(3, 3));
1389 assert(isClose(3.0, 3));
1390 assert(isClose(3, 3.0));
1392 assert(isClose(0.0,0.0));
1393 assert(isClose(-0.0,0.0));
1394 assert(isClose(0.0f,0.0));
1400 assert(num == real.infinity);
1401 assert(isClose(num, real.infinity));
1403 assert(num == -real.infinity);
1404 assert(isClose(num, -real.infinity));
1406 assert(!isClose(1,real.nan));
1407 assert(!isClose(real.nan,real.max));
1408 assert(!isClose(real.nan,real.nan));
1413 assert(isClose!(real[],real[],real)([],[]));
1414 assert(isClose(cast(real[])[],cast(real[])[]));
1425 assert(isClose(f,f2d));
1426 assert(!isClose(d,f2d));
1437 assert(isClose(f,f2d));
1438 assert(!isClose(d,f2d));
1439 assert(isClose(d,f2d,1e-4));
1636 assert(cmp(-double.infinity, -double.max) < 0);
1637 assert(cmp(-double.max, -100.0) < 0);
1638 assert(cmp(-100.0, -0.5) < 0);
1639 assert(cmp(-0.5, 0.0) < 0);
1640 assert(cmp(0.0, 0.5) < 0);
1641 assert(cmp(0.5, 100.0) < 0);
1642 assert(cmp(100.0, double.max) < 0);
1643 assert(cmp(double.max, double.infinity) < 0);
1645 assert(cmp(1.0, 1.0) == 0);
1651 assert(cmp(-0.0, +0.0) < 0);
1652 assert(cmp(+0.0, -0.0) > 0);
1658 assert(cmp(-double.nan, -double.infinity) < 0);
1659 assert(cmp(double.infinity, double.nan) < 0);
1660 assert(cmp(-double.nan, double.nan) < 0);
1666 assert(cmp(NaN(10), NaN(20)) < 0);
1667 assert(cmp(-NaN(20), -NaN(10)) < 0);
1693 assert(cmp(x, y) < 0);
1694 assert(cmp(y, x) > 0);
1696 assert(cmp(x, x) == 0);
1792 static assert(false, "Floating point type `" ~ F.realFormat ~ "` not supported.");
1818 assert(bp.mantissa == 0x80_0000);
1819 assert(bp.exponent == 0);
1820 assert(bp.negative == false);
1824 assert(bp.mantissa == 0xff_ffff);
1825 assert(bp.exponent == 127);
1826 assert(bp.negative == false);
1830 assert(bp.mantissa == 0x8e_55c8);
1831 assert(bp.exponent == -56);
1832 assert(bp.negative == true);
1837 assert(bp.mantissa == 0x00_0011);
1838 assert(bp.exponent == -126);
1839 assert(bp.negative == false);
1843 assert(bp.mantissa == 0);
1844 assert(bp.exponent == 128);
1845 assert(bp.negative == true);
1849 assert(bp.mantissa != 0); // we don't guarantee payloads
1850 assert(bp.exponent == 128);
1851 assert(bp.negative == false);
1858 assert(bp.mantissa == 0x10_0000_0000_0000L);
1859 assert(bp.exponent == 0);
1860 assert(bp.negative == false);
1864 assert(bp.mantissa == 0x1f_ffff_ffff_ffffL);
1865 assert(bp.exponent == 1023);
1866 assert(bp.negative == false);
1870 assert(bp.mantissa == 0x11_d9b6_a401_3b04L);
1871 assert(bp.exponent == -737);
1872 assert(bp.negative == true);
1876 assert(bp.mantissa == 0x00_0000_0000_0001L);
1877 assert(bp.exponent == -1022);
1878 assert(bp.negative == false);
1882 assert(bp.mantissa == 0);
1883 assert(bp.exponent == 1024);
1884 assert(bp.negative == true);
1888 assert(bp.mantissa != 0); // we don't guarantee payloads
1889 assert(bp.exponent == 1024);
1890 assert(bp.negative == false);
1902 assert(bp.mantissa == 0x8000_0000_0000_0000L);
1903 assert(bp.exponent == 0);
1904 assert(bp.negative == false);
1908 assert(bp.mantissa == 0xffff_ffff_ffff_ffffL);
1909 assert(bp.exponent == 16383);
1910 assert(bp.negative == false);
1914 assert(bp.mantissa == 0xc768_a2c7_a616_cc22L);
1915 assert(bp.exponent == -11072);
1916 assert(bp.negative == true);
1920 assert(bp.mantissa == 0x0000_0000_0000_0001L);
1921 assert(bp.exponent == -16382);
1922 assert(bp.negative == false);
1926 assert(bp.mantissa == 0);
1927 assert(bp.exponent == 16384);
1928 assert(bp.negative == true);
1932 assert(bp.mantissa != 0); // we don't guarantee payloads
1933 assert(bp.exponent == 16384);
1934 assert(bp.negative == false);
1938 assert(bp.mantissa == 0xffff_ffff_ffff_ffffL);
1939 assert(bp.exponent == 16382);
1940 assert(bp.negative == false);
1959 static assert(bp1.mantissa == 0x8000_0000_0000_0000L);
1960 static assert(bp1.exponent == 0);
1961 static assert(bp1.negative == false);
1965 static assert(bp2.mantissa == 0xffff_ffff_ffff_ffffL);
1966 static assert(bp2.exponent == 16383);
1967 static assert(bp2.negative == false);
1971 static assert(bp3.mantissa == 0xc768_a2c7_a616_cc22L);
1972 static assert(bp3.exponent == -11072);
1973 static assert(bp3.negative == true);
1977 static assert(bp4.mantissa == 0x0000_0000_0000_0001L);
1978 static assert(bp4.exponent == -16382);
1979 static assert(bp4.negative == false);
1983 static assert(bp5.mantissa == 0);
1984 static assert(bp5.exponent == 16384);
1985 static assert(bp5.negative == true);
1989 static assert(bp6.mantissa != 0); // we don't guarantee payloads
1990 static assert(bp6.exponent == 16384);
1991 static assert(bp6.negative == false);
1995 static assert(bp7.mantissa == 0xffff_ffff_ffff_ffffL);
1996 static assert(bp7.exponent == 16382);
1997 static assert(bp7.negative == false);