1bb0d5f76SEugene Zhulenev //===- MathExtrasTest.cpp - MathExtras Tests ------------------------------===//
2bb0d5f76SEugene Zhulenev //
3bb0d5f76SEugene Zhulenev // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4bb0d5f76SEugene Zhulenev // See https://llvm.org/LICENSE.txt for license information.
5bb0d5f76SEugene Zhulenev // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6bb0d5f76SEugene Zhulenev //
7bb0d5f76SEugene Zhulenev //===----------------------------------------------------------------------===//
8bb0d5f76SEugene Zhulenev 
9bb0d5f76SEugene Zhulenev #include "mlir/Support/MathExtras.h"
10bb0d5f76SEugene Zhulenev #include "gmock/gmock.h"
11bb0d5f76SEugene Zhulenev 
12bb0d5f76SEugene Zhulenev using namespace mlir;
13bb0d5f76SEugene Zhulenev using ::testing::Eq;
14bb0d5f76SEugene Zhulenev 
TEST(MathExtrasTest,CeilDivTest)15bb0d5f76SEugene Zhulenev TEST(MathExtrasTest, CeilDivTest) {
16bb0d5f76SEugene Zhulenev   EXPECT_THAT(ceilDiv(14, 3), Eq(5));
17bb0d5f76SEugene Zhulenev   EXPECT_THAT(ceilDiv(14, -3), Eq(-4));
18bb0d5f76SEugene Zhulenev   EXPECT_THAT(ceilDiv(-14, -3), Eq(5));
19bb0d5f76SEugene Zhulenev   EXPECT_THAT(ceilDiv(-14, 3), Eq(-4));
20*8761f5ebSStephan Herhut   EXPECT_THAT(ceilDiv(0, 3), Eq(0));
21*8761f5ebSStephan Herhut   EXPECT_THAT(ceilDiv(0, -3), Eq(0));
22bb0d5f76SEugene Zhulenev }
23bb0d5f76SEugene Zhulenev 
TEST(MathExtrasTest,FloorDivTest)24bb0d5f76SEugene Zhulenev TEST(MathExtrasTest, FloorDivTest) {
25bb0d5f76SEugene Zhulenev   EXPECT_THAT(floorDiv(14, 3), Eq(4));
26bb0d5f76SEugene Zhulenev   EXPECT_THAT(floorDiv(14, -3), Eq(-5));
27bb0d5f76SEugene Zhulenev   EXPECT_THAT(floorDiv(-14, -3), Eq(4));
28bb0d5f76SEugene Zhulenev   EXPECT_THAT(floorDiv(-14, 3), Eq(-5));
29*8761f5ebSStephan Herhut   EXPECT_THAT(floorDiv(0, 3), Eq(0));
30*8761f5ebSStephan Herhut   EXPECT_THAT(floorDiv(0, -3), Eq(0));
31bb0d5f76SEugene Zhulenev }
32