1
#include <gtest/gtest.h>
3
#include <ATen/core/NestedIntSymNodeImpl.h>
4
#include <c10/core/SymInt.h>
5
#include <c10/core/SymNodeImpl.h>
6
#include <torch/torch.h>
8
#include <test/cpp/api/support.h>
10
TEST(NestedIntTest, Comparisons) {
12
c10::SymNode(c10::make_intrusive<c10::NestedIntSymNodeImpl>(1, 1)));
14
c10::SymNode(c10::make_intrusive<c10::NestedIntSymNodeImpl>(1, 1)));
16
c10::SymNode(c10::make_intrusive<c10::NestedIntSymNodeImpl>(2, 1)));
17
auto d = c10::SymInt(3);
35
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
36
EXPECT_THROW((void)(a >= c), c10::Error);
37
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
38
EXPECT_THROW((void)(c >= a), c10::Error);
39
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
40
EXPECT_THROW((void)(c >= 3), c10::Error);
49
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
50
EXPECT_THROW((void)(a < c), c10::Error);
51
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
52
EXPECT_THROW((void)(c < a), c10::Error);
53
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
54
EXPECT_THROW((void)(3 < a), c10::Error);
55
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
56
EXPECT_THROW((void)(2 < a), c10::Error);
63
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
64
EXPECT_THROW((void)(a <= c), c10::Error);
65
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
66
EXPECT_THROW((void)(c <= a), c10::Error);
67
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
68
EXPECT_THROW((void)(3 <= c), c10::Error);
77
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
78
EXPECT_THROW((void)(a > c), c10::Error);
79
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
80
EXPECT_THROW((void)(c > a), c10::Error);
81
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
82
EXPECT_THROW((void)(a > 3), c10::Error);
83
// NOLINTNEXTLINE(hicpp-avoid-goto,cppcoreguidelines-avoid-goto)
84
EXPECT_THROW((void)(a > 2), c10::Error);
88
TEST(NestedIntTest, WithFactor) {
90
c10::SymNode(c10::make_intrusive<c10::NestedIntSymNodeImpl>(1, 5)));
92
c10::SymNode(c10::make_intrusive<c10::NestedIntSymNodeImpl>(1, 10)));
102
ASSERT_TRUE(a * 2 == b);
103
ASSERT_TRUE(a * 3 >= b);
104
ASSERT_TRUE(a * 2 == 2 * a);