[Bf-blender-cvs] [8482ee2be96] functions: utilities to create a range before/after another

Jacques Lucke noreply at git.blender.org
Mon Jun 17 15:52:50 CEST 2019


Commit: 8482ee2be9626a9bd281c985c60329d36e63d264
Author: Jacques Lucke
Date:   Mon Jun 17 15:51:06 2019 +0200
Branches: functions
https://developer.blender.org/rB8482ee2be9626a9bd281c985c60329d36e63d264

utilities to create a range before/after another

===================================================================

M	source/blender/blenlib/BLI_range.hpp
M	tests/gtests/blenlib/BLI_range_test.cc

===================================================================

diff --git a/source/blender/blenlib/BLI_range.hpp b/source/blender/blenlib/BLI_range.hpp
index 0b383d14b16..2aeb50e00ac 100644
--- a/source/blender/blenlib/BLI_range.hpp
+++ b/source/blender/blenlib/BLI_range.hpp
@@ -68,5 +68,15 @@ template<typename T> class Range {
   {
     return m_one_after_last - m_start;
   }
+
+  Range after(uint n) const
+  {
+    return Range(m_one_after_last, m_one_after_last + n);
+  }
+
+  Range before(uint n) const
+  {
+    return Range(m_start - n, m_start);
+  }
 };
 }  // namespace BLI
diff --git a/tests/gtests/blenlib/BLI_range_test.cc b/tests/gtests/blenlib/BLI_range_test.cc
index a1e6fdb66a0..cfa0344325e 100644
--- a/tests/gtests/blenlib/BLI_range_test.cc
+++ b/tests/gtests/blenlib/BLI_range_test.cc
@@ -55,3 +55,22 @@ TEST(range, SubscriptOperator)
   EXPECT_EQ(range[1], 6);
   EXPECT_EQ(range[2], 7);
 }
+
+TEST(range, Before)
+{
+  IntRange range = IntRange(5, 10).before(3);
+  EXPECT_EQ(range[0], 2);
+  EXPECT_EQ(range[1], 3);
+  EXPECT_EQ(range[2], 4);
+  EXPECT_EQ(range.size(), 3);
+}
+
+TEST(range, After)
+{
+  IntRange range = IntRange(5, 10).after(4);
+  EXPECT_EQ(range[0], 10);
+  EXPECT_EQ(range[1], 11);
+  EXPECT_EQ(range[2], 12);
+  EXPECT_EQ(range[3], 13);
+  EXPECT_EQ(range.size(), 4);
+}



More information about the Bf-blender-cvs mailing list