blob: f912965a57427b753cc18df3d346b5858ebf6370 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/impeller/geometry/rational.h"
#include "gtest/gtest.h"
namespace impeller {
TEST(RationalTest, Make) {
Rational value(1, 2);
EXPECT_EQ(value.GetNumerator(), 1);
EXPECT_EQ(value.GetDenominator(), 2u);
}
TEST(RationalTest, EqualsSameDen) {
EXPECT_TRUE(Rational(1, 2) == Rational(1, 2));
}
TEST(RationalTest, NotEqualsSameDen) {
EXPECT_FALSE(Rational(3, 2) == Rational(1, 2));
}
TEST(RationalTest, EqualsDifferentDen) {
EXPECT_TRUE(Rational(1, 2) == Rational(2, 4));
}
TEST(RationalTest, NegationNotEquals) {
EXPECT_FALSE(Rational(1, 2) == Rational(-1, 2));
}
TEST(RationalTest, LessThanSameDen) {
EXPECT_TRUE(Rational(1, 2) < Rational(2, 2));
}
TEST(RationalTest, LessThanNegation) {
EXPECT_TRUE(Rational(-1, 2) < Rational(2, 23));
}
TEST(RationalTest, LessThanDifferentDen) {
EXPECT_TRUE(Rational(1, 2) < Rational(25, 23));
}
TEST(RationalTest, NotLessThanDifferentDen) {
EXPECT_FALSE(Rational(25, 23) < Rational(1, 2));
}
TEST(RationalTest, SameHashes) {
EXPECT_EQ(Rational(1, 2).GetHash(), Rational(2, 4).GetHash());
}
TEST(RationalTest, DifferentHashes) {
EXPECT_NE(Rational(2, 2).GetHash(), Rational(2, 4).GetHash());
}
} // namespace impeller