Floor and Ceil (#150)

* Implements Floor and Ceil Ops
This commit is contained in:
Luca Arnaboldi
2023-12-14 19:00:23 +01:00
committed by GitHub
parent 1e0c78b970
commit b93c4cf378
14 changed files with 250 additions and 4 deletions

View File

@@ -773,6 +773,29 @@ TEST_CASE("test arithmetic unary ops") {
constexpr float neginf = -std::numeric_limits<float>::infinity();
// Test floor and ceil
{
array x(1.0f);
CHECK_EQ(floor(x).item<float>(), 1.0f);
CHECK_EQ(ceil(x).item<float>(), 1.0f);
x = array(1.5f);
CHECK_EQ(floor(x).item<float>(), 1.0f);
CHECK_EQ(ceil(x).item<float>(), 2.0f);
x = array(-1.5f);
CHECK_EQ(floor(x).item<float>(), -2.0f);
CHECK_EQ(ceil(x).item<float>(), -1.0f);
x = array(neginf);
CHECK_EQ(floor(x).item<float>(), neginf);
CHECK_EQ(ceil(x).item<float>(), neginf);
x = array(std::complex<float>(1.0f, 1.0f));
CHECK_THROWS_AS(floor(x), std::invalid_argument);
CHECK_THROWS_AS(ceil(x), std::invalid_argument);
}
// Test exponential
{
array x(0.0);