15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/gfx/range/range.h" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, EmptyInit) { 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r; 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.start()); 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.end()); 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.length()); 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.is_reversed()); 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_empty()); 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.GetMin()); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.GetMax()); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, StartEndInit) { 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(10, 15); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.start()); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(15U, r.end()); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.length()); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.is_reversed()); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.is_empty()); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.GetMin()); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(15U, r.GetMax()); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, StartEndReversedInit) { 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(10, 5); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.start()); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.end()); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.length()); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_reversed()); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.is_empty()); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.GetMin()); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.GetMax()); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, PositionInit) { 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(12); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(12U, r.start()); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(12U, r.end()); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.length()); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.is_reversed()); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_empty()); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(12U, r.GetMin()); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(12U, r.GetMax()); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, InvalidRange) { 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(gfx::Range::InvalidRange()); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(0U, r.length()); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(r.start(), r.end()); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.is_reversed()); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_empty()); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r.IsValid()); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, Equality) { 6658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r1(10, 4); 6758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r2(10, 4); 6858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r3(10, 2); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(r1, r2); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r1, r3); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r2, r3); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r4(11, 4); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r1, r4); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r2, r4); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r3, r4); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r5(12, 5); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r1, r5); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r2, r5); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_NE(r3, r5); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, EqualsIgnoringDirection) { 8558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r1(10, 5); 8658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r2(5, 10); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r1.EqualsIgnoringDirection(r2)); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, SetStart) { 9158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(10, 20); 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.start()); 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.length()); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) r.set_start(42); 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(42U, r.start()); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(20U, r.end()); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(22U, r.length()); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_reversed()); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, SetEnd) { 10358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(10, 13); 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.start()); 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(3U, r.length()); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) r.set_end(20); 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.start()); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(20U, r.end()); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.length()); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, SetStartAndEnd) { 11458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) r.set_end(5); 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) r.set_start(1); 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(1U, r.start()); 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.end()); 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(4U, r.length()); 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(1U, r.GetMin()); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.GetMax()); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, ReversedRange) { 12558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(10, 5); 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.start()); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.end()); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.length()); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_reversed()); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.GetMin()); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(10U, r.GetMax()); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, SetReversedRange) { 13658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r(10, 20); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) r.set_start(25); 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(25U, r.start()); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(20U, r.end()); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(5U, r.length()); 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.is_reversed()); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) r.set_end(21); 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(25U, r.start()); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(21U, r.end()); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(4U, r.length()); 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r.IsValid()); 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(21U, r.GetMin()); 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(25U, r.GetMax()); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void TestContainsAndIntersects(const gfx::Range& r1, 15458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& r2, 15558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& r3) { 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r1.Intersects(r1)); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r1.Contains(r1)); 15858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) EXPECT_EQ(gfx::Range(10, 12), r1.Intersect(r1)); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r1.Intersects(r2)); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r1.Contains(r2)); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r1.Intersect(r2).is_empty()); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r2.Intersects(r1)); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r2.Contains(r1)); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r2.Intersect(r1).is_empty()); 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r1.Intersects(r3)); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r3.Intersects(r1)); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r3.Contains(r1)); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r1.Contains(r3)); 17158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) EXPECT_EQ(gfx::Range(10, 12), r1.Intersect(r3)); 17258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) EXPECT_EQ(gfx::Range(10, 12), r3.Intersect(r1)); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r2.Intersects(r3)); 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(r3.Intersects(r2)); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r3.Contains(r2)); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r2.Contains(r3)); 17858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) EXPECT_EQ(gfx::Range(5, 8), r2.Intersect(r3)); 17958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) EXPECT_EQ(gfx::Range(5, 8), r3.Intersect(r2)); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(RangeTest, ContainAndIntersect) { 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SCOPED_TRACE("contain and intersect"); 18558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r1(10, 12); 18658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r2(1, 8); 18758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r3(5, 12); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestContainsAndIntersects(r1, r2, r3); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SCOPED_TRACE("contain and intersect: reversed"); 19258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r1(12, 10); 19358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r2(8, 1); 19458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r3(12, 5); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestContainsAndIntersects(r1, r2, r3); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invalid rect tests 19858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r1(10, 12); 19958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range r2(8, 1); 20058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range invalid = r1.Intersect(r2); 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(invalid.IsValid()); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(invalid.Contains(invalid)); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(invalid.Contains(r1)); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(invalid.Intersects(invalid)); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(invalid.Intersects(r1)); 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r1.Contains(invalid)); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(r1.Intersects(invalid)); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 209