blob: d3182554978d21e8d291b5a9d4376d1b9c07dcb6 [file] [log] [blame]
// Copyright 2021 The Chromium 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 "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/geometry/insets_f.h"
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/test/gfx_util.h"
namespace gfx {
TEST(RectFTest, Inset) {
RectF r(10, 20, 30, 40);
r.Inset(0);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
r.Inset(1.5);
EXPECT_RECTF_EQ(RectF(11.5, 21.5, 27, 37), r);
r.Inset(-1.5);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
r.Inset(1.5, 2.25);
EXPECT_RECTF_EQ(RectF(11.5, 22.25, 27, 35.5), r);
r.Inset(-1.5, -2.25);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
// The parameters are left, top, right, bottom.
r.Inset(1.5, 2.25, 3.75, 4);
EXPECT_RECTF_EQ(RectF(11.5, 22.25, 24.75, 33.75), r);
r.Inset(-1.5, -2.25, -3.75, -4);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
// InsetsF parameters are top, right, bottom, left.
r.Inset(InsetsF(1.5, 2.25, 3.75, 4));
EXPECT_RECTF_EQ(RectF(12.25, 21.5, 23.75, 34.75), r);
r.Inset(InsetsF(-1.5, -2.25, -3.75, -4));
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
}
TEST(RectFTest, Outset) {
RectF r(10, 20, 30, 40);
r.Outset(0);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
r.Outset(1.5);
EXPECT_RECTF_EQ(RectF(8.5, 18.5, 33, 43), r);
r.Outset(-1.5);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
r.Outset(1.5, 2.25);
EXPECT_RECTF_EQ(RectF(8.5, 17.75, 33, 44.5), r);
r.Outset(-1.5, -2.25);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
r.Outset(1.5, 2.25, 3.75, 4);
EXPECT_RECTF_EQ(RectF(8.5, 17.75, 35.25, 46.25), r);
r.Outset(-1.5, -2.25, -3.75, -4);
EXPECT_RECTF_EQ(RectF(10, 20, 30, 40), r);
}
TEST(RectFTest, InsetClamped) {
RectF r(10, 20, 30, 40);
r.Inset(18);
EXPECT_RECTF_EQ(RectF(28, 38, 0, 4), r);
r.Inset(-18);
EXPECT_RECTF_EQ(RectF(10, 20, 36, 40), r);
r.Inset(15, 30);
EXPECT_RECTF_EQ(RectF(25, 50, 6, 0), r);
r.Inset(-15, -30);
EXPECT_RECTF_EQ(RectF(10, 20, 36, 60), r);
r.Inset(20, 30, 40, 50);
EXPECT_RECTF_EQ(RectF(30, 50, 0, 0), r);
r.Inset(-20, -30, -40, -50);
EXPECT_RECTF_EQ(RectF(10, 20, 60, 80), r);
}
} // namespace gfx