Browse Source

tests: Add unit tests for GeomPrimitive::offset_vertices()

rdb 4 years ago
parent
commit
8bde2f2b1b
1 changed files with 62 additions and 0 deletions
  1. 62 0
      tests/gobj/test_geom_primitives.py

+ 62 - 0
tests/gobj/test_geom_primitives.py

@@ -81,3 +81,65 @@ def test_geom_linestrips_adjacency():
         3, 4, 5, 6,
         4, 5, 6, 6,
     )
+
+
+def test_geom_linestrips_offset_indexed():
+    prim = core.GeomLinestrips(core.GeomEnums.UH_static)
+    prim.add_vertex(0)
+    prim.add_vertex(1)
+    prim.close_primitive()
+    prim.add_vertex(1)
+    prim.add_vertex(2)
+    prim.add_vertex(3)
+    prim.close_primitive()
+    prim.add_vertex(3)
+    prim.add_vertex(4)
+    prim.add_vertex(5)
+    prim.add_vertex(6)
+    prim.close_primitive()
+
+    prim.offset_vertices(100)
+    verts = prim.get_vertex_list()
+    cut = prim.strip_cut_index
+    assert tuple(verts) == (
+        100, 101,
+        cut,
+        101, 102, 103,
+        cut,
+        103, 104, 105, 106,
+    )
+
+    prim.offset_vertices(-100)
+    verts = prim.get_vertex_list()
+    cut = prim.strip_cut_index
+    assert tuple(verts) == (
+        0, 1,
+        cut,
+        1, 2, 3,
+        cut,
+        3, 4, 5, 6,
+    )
+
+    prim.offset_vertices(100, 4, 9)
+    verts = prim.get_vertex_list()
+    cut = prim.strip_cut_index
+    assert tuple(verts) == (
+        0, 1,
+        cut,
+        1, 102, 103,
+        cut,
+        103, 104, 5, 6,
+    )
+
+    # Automatically upgrade to uint32
+    prim.offset_vertices(100000)
+    assert prim.index_type == core.GeomEnums.NT_uint32
+    verts = prim.get_vertex_list()
+    cut = prim.strip_cut_index
+    assert tuple(verts) == (
+        100000, 100001,
+        cut,
+        100001, 100102, 100103,
+        cut,
+        100103, 100104, 100005, 100006,
+    )