Adds overlapsWith and contains predicates on tooling::Range.

Patch by Guillaume Papin.

llvm-svn: 186670
diff --git a/clang/unittests/Tooling/RefactoringTest.cpp b/clang/unittests/Tooling/RefactoringTest.cpp
index f8d10d286..5741e5d 100644
--- a/clang/unittests/Tooling/RefactoringTest.cpp
+++ b/clang/unittests/Tooling/RefactoringTest.cpp
@@ -332,5 +332,20 @@
   expectReplacementAt(CallToF.Replace, "input.cc", 43, 8);
 }
 
+TEST(Range, overlaps) {
+  EXPECT_TRUE(Range(10, 10).overlapsWith(Range(0, 11)));
+  EXPECT_TRUE(Range(0, 11).overlapsWith(Range(10, 10)));
+  EXPECT_FALSE(Range(10, 10).overlapsWith(Range(0, 10)));
+  EXPECT_FALSE(Range(0, 10).overlapsWith(Range(10, 10)));
+  EXPECT_TRUE(Range(0, 10).overlapsWith(Range(2, 6)));
+}
+
+TEST(Range, contains) {
+  EXPECT_TRUE(Range(0, 10).contains(Range(0, 10)));
+  EXPECT_TRUE(Range(0, 10).contains(Range(2, 6)));
+  EXPECT_FALSE(Range(2, 6).contains(Range(0, 10)));
+  EXPECT_FALSE(Range(0, 10).contains(Range(0, 11)));
+}
+
 } // end namespace tooling
 } // end namespace clang