Index: test/std/numerics/numerics.abs/abs_tests.h =================================================================== --- /dev/null +++ test/std/numerics/numerics.abs/abs_tests.h @@ -0,0 +1,16 @@ +#include +#include + +template +void general_test(Out f(In)) +{ + for (In i = -50; i < 50; ++i) + { + auto res = f(i); + ASSERT_SAME_TYPE(decltype(res), Out); + if (i > 0) + assert(res == i); + else + assert(res == i - (i * 2)); + } +} Index: test/std/numerics/numerics.abs/cinttypes.pass.cpp =================================================================== --- /dev/null +++ test/std/numerics/numerics.abs/cinttypes.pass.cpp @@ -0,0 +1,9 @@ +#include "abs_tests.h" + +#include + +int main() +{ + // general_test(std::abs); + general_test(std::imaxabs); +} Index: test/std/numerics/numerics.abs/cmath.pass.cpp =================================================================== --- /dev/null +++ test/std/numerics/numerics.abs/cmath.pass.cpp @@ -0,0 +1,13 @@ +#include "abs_tests.h" + +#include + +int main() +{ + general_test(std::abs); + general_test(std::fabs); + general_test(std::fabsf); + general_test(std::fabs); + general_test(std::fabs); + general_test(std::fabsl); +} Index: test/std/numerics/numerics.abs/cstdlib.pass.cpp =================================================================== --- /dev/null +++ test/std/numerics/numerics.abs/cstdlib.pass.cpp @@ -0,0 +1,13 @@ +#include "abs_tests.h" + +#include + +int main() +{ + general_test(std::abs); + general_test(std::abs); + general_test(std::abs); + + general_test(std::labs); + general_test(std::llabs); +} \ No newline at end of file Index: test/std/numerics/numerics.abs/stdlib.h.pass.cpp =================================================================== --- /dev/null +++ test/std/numerics/numerics.abs/stdlib.h.pass.cpp @@ -0,0 +1,9 @@ +#include "abs_tests.h" + +#include + +int main() +{ + general_test(abs); + general_test(abs); +} \ No newline at end of file