Skip to content

Commit e0ff77a

Browse files
committed
coretests: add abs() and copysign() tests, and remove now-unnecessary ui test
1 parent 2a9363e commit e0ff77a

File tree

2 files changed

+56
-91
lines changed

2 files changed

+56
-91
lines changed

library/coretests/tests/num/mod.rs

Lines changed: 56 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -747,19 +747,19 @@ macro_rules! test_float {
747747
$fassert!((-0.0 as $fty).min(9.0), -0.0);
748748
$fassert!((-0.0 as $fty).min(9.0).is_sign_negative());
749749
$fassert!((-0.0 as $fty).min(-9.0), -9.0);
750-
$fassert!((<$fty>::INFINITY as $fty).min(9.0), 9.0);
750+
$fassert!(<$fty>::INFINITY.min(9.0), 9.0);
751751
$fassert!((9.0 as $fty).min(<$fty>::INFINITY), 9.0);
752-
$fassert!((<$fty>::INFINITY as $fty).min(-9.0), -9.0);
752+
$fassert!(<$fty>::INFINITY.min(-9.0), -9.0);
753753
$fassert!((-9.0 as $fty).min(<$fty>::INFINITY), -9.0);
754-
$fassert!((<$fty>::NEG_INFINITY as $fty).min(9.0), <$fty>::NEG_INFINITY);
754+
$fassert!(<$fty>::NEG_INFINITY.min(9.0), <$fty>::NEG_INFINITY);
755755
$fassert!((9.0 as $fty).min(<$fty>::NEG_INFINITY), <$fty>::NEG_INFINITY);
756-
$fassert!((<$fty>::NEG_INFINITY as $fty).min(-9.0), <$fty>::NEG_INFINITY);
756+
$fassert!(<$fty>::NEG_INFINITY.min(-9.0), <$fty>::NEG_INFINITY);
757757
$fassert!((-9.0 as $fty).min(<$fty>::NEG_INFINITY), <$fty>::NEG_INFINITY);
758-
$fassert!((<$fty>::NAN as $fty).min(9.0), 9.0);
759-
$fassert!((<$fty>::NAN as $fty).min(-9.0), -9.0);
758+
$fassert!(<$fty>::NAN.min(9.0), 9.0);
759+
$fassert!(<$fty>::NAN.min(-9.0), -9.0);
760760
$fassert!((9.0 as $fty).min(<$fty>::NAN), 9.0);
761761
$fassert!((-9.0 as $fty).min(<$fty>::NAN), -9.0);
762-
$fassert!((<$fty>::NAN as $fty).min(<$fty>::NAN).is_nan());
762+
$fassert!(<$fty>::NAN.min(<$fty>::NAN).is_nan());
763763
}
764764
#[test]
765765
fn max() {
@@ -777,19 +777,19 @@ macro_rules! test_float {
777777
$fassert!((0.0 as $fty).max(-9.0).is_sign_positive());
778778
$fassert!((-0.0 as $fty).max(-9.0), -0.0);
779779
$fassert!((-0.0 as $fty).max(-9.0).is_sign_negative());
780-
$fassert!((<$fty>::INFINITY as $fty).max(9.0), <$fty>::INFINITY);
780+
$fassert!(<$fty>::INFINITY.max(9.0), <$fty>::INFINITY);
781781
$fassert!((9.0 as $fty).max(<$fty>::INFINITY), <$fty>::INFINITY);
782-
$fassert!((<$fty>::INFINITY as $fty).max(-9.0), <$fty>::INFINITY);
782+
$fassert!(<$fty>::INFINITY.max(-9.0), <$fty>::INFINITY);
783783
$fassert!((-9.0 as $fty).max(<$fty>::INFINITY), <$fty>::INFINITY);
784-
$fassert!((<$fty>::NEG_INFINITY as $fty).max(9.0), 9.0);
784+
$fassert!(<$fty>::NEG_INFINITY.max(9.0), 9.0);
785785
$fassert!((9.0 as $fty).max(<$fty>::NEG_INFINITY), 9.0);
786-
$fassert!((<$fty>::NEG_INFINITY as $fty).max(-9.0), -9.0);
786+
$fassert!(<$fty>::NEG_INFINITY.max(-9.0), -9.0);
787787
$fassert!((-9.0 as $fty).max(<$fty>::NEG_INFINITY), -9.0);
788-
$fassert!((<$fty>::NAN as $fty).max(9.0), 9.0);
789-
$fassert!((<$fty>::NAN as $fty).max(-9.0), -9.0);
788+
$fassert!(<$fty>::NAN.max(9.0), 9.0);
789+
$fassert!(<$fty>::NAN.max(-9.0), -9.0);
790790
$fassert!((9.0 as $fty).max(<$fty>::NAN), 9.0);
791791
$fassert!((-9.0 as $fty).max(<$fty>::NAN), -9.0);
792-
$fassert!((<$fty>::NAN as $fty).max(<$fty>::NAN).is_nan());
792+
$fassert!(<$fty>::NAN.max(<$fty>::NAN).is_nan());
793793
}
794794
#[test]
795795
fn minimum() {
@@ -806,19 +806,19 @@ macro_rules! test_float {
806806
$fassert!((-0.0 as $fty).minimum(9.0), -0.0);
807807
$fassert!((-0.0 as $fty).minimum(9.0).is_sign_negative());
808808
$fassert!((-0.0 as $fty).minimum(-9.0), -9.0);
809-
$fassert!((<$fty>::INFINITY as $fty).minimum(9.0), 9.0);
809+
$fassert!(<$fty>::INFINITY.minimum(9.0), 9.0);
810810
$fassert!((9.0 as $fty).minimum(<$fty>::INFINITY), 9.0);
811-
$fassert!((<$fty>::INFINITY as $fty).minimum(-9.0), -9.0);
811+
$fassert!(<$fty>::INFINITY.minimum(-9.0), -9.0);
812812
$fassert!((-9.0 as $fty).minimum(<$fty>::INFINITY), -9.0);
813-
$fassert!((<$fty>::NEG_INFINITY as $fty).minimum(9.0), <$fty>::NEG_INFINITY);
813+
$fassert!(<$fty>::NEG_INFINITY.minimum(9.0), <$fty>::NEG_INFINITY);
814814
$fassert!((9.0 as $fty).minimum(<$fty>::NEG_INFINITY), <$fty>::NEG_INFINITY);
815-
$fassert!((<$fty>::NEG_INFINITY as $fty).minimum(-9.0), <$fty>::NEG_INFINITY);
815+
$fassert!(<$fty>::NEG_INFINITY.minimum(-9.0), <$fty>::NEG_INFINITY);
816816
$fassert!((-9.0 as $fty).minimum(<$fty>::NEG_INFINITY), <$fty>::NEG_INFINITY);
817-
$fassert!((<$fty>::NAN as $fty).minimum(9.0).is_nan());
818-
$fassert!((<$fty>::NAN as $fty).minimum(-9.0).is_nan());
817+
$fassert!(<$fty>::NAN.minimum(9.0).is_nan());
818+
$fassert!(<$fty>::NAN.minimum(-9.0).is_nan());
819819
$fassert!((9.0 as $fty).minimum(<$fty>::NAN).is_nan());
820820
$fassert!((-9.0 as $fty).minimum(<$fty>::NAN).is_nan());
821-
$fassert!((<$fty>::NAN as $fty).minimum(<$fty>::NAN).is_nan());
821+
$fassert!(<$fty>::NAN.minimum(<$fty>::NAN).is_nan());
822822
}
823823
#[test]
824824
fn maximum() {
@@ -838,19 +838,19 @@ macro_rules! test_float {
838838
$fassert!((0.0 as $fty).maximum(-9.0).is_sign_positive());
839839
$fassert!((-0.0 as $fty).maximum(-9.0), -0.0);
840840
$fassert!((-0.0 as $fty).maximum(-9.0).is_sign_negative());
841-
$fassert!((<$fty>::INFINITY as $fty).maximum(9.0), <$fty>::INFINITY);
841+
$fassert!(<$fty>::INFINITY.maximum(9.0), <$fty>::INFINITY);
842842
$fassert!((9.0 as $fty).maximum(<$fty>::INFINITY), <$fty>::INFINITY);
843-
$fassert!((<$fty>::INFINITY as $fty).maximum(-9.0), <$fty>::INFINITY);
843+
$fassert!(<$fty>::INFINITY.maximum(-9.0), <$fty>::INFINITY);
844844
$fassert!((-9.0 as $fty).maximum(<$fty>::INFINITY), <$fty>::INFINITY);
845-
$fassert!((<$fty>::NEG_INFINITY as $fty).maximum(9.0), 9.0);
845+
$fassert!(<$fty>::NEG_INFINITY.maximum(9.0), 9.0);
846846
$fassert!((9.0 as $fty).maximum(<$fty>::NEG_INFINITY), 9.0);
847-
$fassert!((<$fty>::NEG_INFINITY as $fty).maximum(-9.0), -9.0);
847+
$fassert!(<$fty>::NEG_INFINITY.maximum(-9.0), -9.0);
848848
$fassert!((-9.0 as $fty).maximum(<$fty>::NEG_INFINITY), -9.0);
849-
$fassert!((<$fty>::NAN as $fty).maximum(9.0).is_nan());
850-
$fassert!((<$fty>::NAN as $fty).maximum(-9.0).is_nan());
849+
$fassert!(<$fty>::NAN.maximum(9.0).is_nan());
850+
$fassert!(<$fty>::NAN.maximum(-9.0).is_nan());
851851
$fassert!((9.0 as $fty).maximum(<$fty>::NAN).is_nan());
852852
$fassert!((-9.0 as $fty).maximum(<$fty>::NAN).is_nan());
853-
$fassert!((<$fty>::NAN as $fty).maximum(<$fty>::NAN).is_nan());
853+
$fassert!(<$fty>::NAN.maximum(<$fty>::NAN).is_nan());
854854
}
855855
#[test]
856856
fn midpoint() {
@@ -863,20 +863,17 @@ macro_rules! test_float {
863863
$fassert!((0.0 as $fty).midpoint(0.0), 0.0);
864864
$fassert!((-0.0 as $fty).midpoint(-0.0), -0.0);
865865
$fassert!((-5.0 as $fty).midpoint(5.0), 0.0);
866-
$fassert!((<$fty>::MAX as $fty).midpoint(<$fty>::MIN), 0.0);
867-
$fassert!((<$fty>::MIN as $fty).midpoint(<$fty>::MAX), -0.0);
868-
$fassert!((<$fty>::MAX as $fty).midpoint(<$fty>::MIN_POSITIVE), <$fty>::MAX / 2.);
869-
$fassert!((-<$fty>::MAX as $fty).midpoint(<$fty>::MIN_POSITIVE), -<$fty>::MAX / 2.);
870-
$fassert!((<$fty>::MAX as $fty).midpoint(-<$fty>::MIN_POSITIVE), <$fty>::MAX / 2.);
871-
$fassert!(
872-
(-<$fty>::MAX as $fty).midpoint(-<$fty>::MIN_POSITIVE),
873-
-<$fty>::MAX / 2.
874-
);
866+
$fassert!(<$fty>::MAX.midpoint(<$fty>::MIN), 0.0);
867+
$fassert!(<$fty>::MIN.midpoint(<$fty>::MAX), -0.0);
868+
$fassert!(<$fty>::MAX.midpoint(<$fty>::MIN_POSITIVE), <$fty>::MAX / 2.);
869+
$fassert!((-<$fty>::MAX).midpoint(<$fty>::MIN_POSITIVE), -<$fty>::MAX / 2.);
870+
$fassert!(<$fty>::MAX.midpoint(-<$fty>::MIN_POSITIVE), <$fty>::MAX / 2.);
871+
$fassert!((-<$fty>::MAX).midpoint(-<$fty>::MIN_POSITIVE), -<$fty>::MAX / 2.);
875872
$fassert!((<$fty>::MIN_POSITIVE).midpoint(<$fty>::MAX), <$fty>::MAX / 2.);
876873
$fassert!((<$fty>::MIN_POSITIVE).midpoint(-<$fty>::MAX), -<$fty>::MAX / 2.);
877874
$fassert!((-<$fty>::MIN_POSITIVE).midpoint(<$fty>::MAX), <$fty>::MAX / 2.);
878875
$fassert!((-<$fty>::MIN_POSITIVE).midpoint(-<$fty>::MAX), -<$fty>::MAX / 2.);
879-
$fassert!((<$fty>::MAX as $fty).midpoint(<$fty>::MAX), <$fty>::MAX);
876+
$fassert!(<$fty>::MAX.midpoint(<$fty>::MAX), <$fty>::MAX);
880877
$fassert!(
881878
(<$fty>::MIN_POSITIVE).midpoint(<$fty>::MIN_POSITIVE),
882879
<$fty>::MIN_POSITIVE
@@ -885,16 +882,16 @@ macro_rules! test_float {
885882
(-<$fty>::MIN_POSITIVE).midpoint(-<$fty>::MIN_POSITIVE),
886883
-<$fty>::MIN_POSITIVE
887884
);
888-
$fassert!((<$fty>::MAX as $fty).midpoint(5.0), <$fty>::MAX / 2.0 + 2.5);
889-
$fassert!((<$fty>::MAX as $fty).midpoint(-5.0), <$fty>::MAX / 2.0 - 2.5);
890-
$fassert!((<$fty>::INFINITY as $fty).midpoint(<$fty>::INFINITY), <$fty>::INFINITY);
885+
$fassert!(<$fty>::MAX.midpoint(5.0), <$fty>::MAX / 2.0 + 2.5);
886+
$fassert!(<$fty>::MAX.midpoint(-5.0), <$fty>::MAX / 2.0 - 2.5);
887+
$fassert!(<$fty>::INFINITY.midpoint(<$fty>::INFINITY), <$fty>::INFINITY);
891888
$fassert!(
892-
(<$fty>::NEG_INFINITY as $fty).midpoint(<$fty>::NEG_INFINITY),
889+
<$fty>::NEG_INFINITY.midpoint(<$fty>::NEG_INFINITY),
893890
<$fty>::NEG_INFINITY
894891
);
895-
$fassert!((<$fty>::NAN as $fty).midpoint(1.0).is_nan());
892+
$fassert!(<$fty>::NAN.midpoint(1.0).is_nan());
896893
$fassert!((1.0 as $fty).midpoint(<$fty>::NAN).is_nan());
897-
$fassert!((<$fty>::NAN as $fty).midpoint(<$fty>::NAN).is_nan());
894+
$fassert!(<$fty>::NAN.midpoint(<$fty>::NAN).is_nan());
898895

899896
// test if large differences in magnitude are still correctly computed.
900897
// NOTE: that because of how small x and y are, x + y can never overflow
@@ -903,7 +900,7 @@ macro_rules! test_float {
903900
// be safely doubled, while j is significantly smaller.
904901
for i in <$fty>::MAX_EXP.saturating_sub(64)..<$fty>::MAX_EXP {
905902
for j in 0..64u8 {
906-
let large = <$fty>::from(2.0f32).powi(i);
903+
let large = (2.0 as $fty).powi(i);
907904
// a much smaller number, such that there is no chance of overflow to test
908905
// potential double rounding in midpoint's implementation.
909906
let small = (2.0 as $fty).powi(<$fty>::MAX_EXP - 1)
@@ -918,6 +915,20 @@ macro_rules! test_float {
918915
}
919916
}
920917
#[test]
918+
fn abs() {
919+
$fassert!((-1.0 as $fty).abs(), 1.0);
920+
$fassert!((1.0 as $fty).abs(), 1.0);
921+
$fassert!(<$fty>::NEG_INFINITY.abs(), <$fty>::INFINITY);
922+
$fassert!(<$fty>::INFINITY.abs(), <$fty>::INFINITY);
923+
}
924+
#[test]
925+
fn copysign() {
926+
$fassert!((1.0 as $fty).copysign(-2.0), -1.0);
927+
$fassert!((-1.0 as $fty).copysign(2.0), 1.0);
928+
$fassert!(<$fty>::INFINITY.copysign(-0.0), <$fty>::NEG_INFINITY);
929+
$fassert!(<$fty>::NEG_INFINITY.copysign(0.0), <$fty>::INFINITY);
930+
}
931+
#[test]
921932
fn rem_euclid() {
922933
// FIXME: Use $fassert when rem_euclid becomes const
923934
assert!(<$fty>::INFINITY.rem_euclid((42.0 as $fty)).is_nan());

tests/ui/consts/const-eval/float_methods.rs

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)