From 02960ad1eff15909c9af2a503b622cd34918a100 Mon Sep 17 00:00:00 2001
From: Amorilia <amorilia@users.sourceforge.net>
Date: Sat, 17 Sep 2011 09:21:04 +0100
Subject: [PATCH] Added two more tests for NiSkinPartition.SetTriangles() (see
 niftools issue #3395584).

---
 test/skinpart_test.cpp | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/test/skinpart_test.cpp b/test/skinpart_test.cpp
index 2128b05f..2ca9bd01 100644
--- a/test/skinpart_test.cpp
+++ b/test/skinpart_test.cpp
@@ -94,4 +94,34 @@ BOOST_AUTO_TEST_CASE(write_skinpart_test)
   BOOST_CHECK_EQUAL(skinpart->skinPartitionBlocks[0].numTriangles, 1);
 }
 
+BOOST_AUTO_TEST_CASE(skinpart_triangles_partnum_test)
+{
+  // create a simple skin partition
+  NiSkinPartitionRef skinpart = new NiSkinPartition;
+  skinpart->SetNumPartitions(1);
+  vector<Vector3> verts;
+  vector<Triangle> tris;
+  verts.push_back(Vector3(0, 0, 0));
+  verts.push_back(Vector3(0, 1, 0));
+  verts.push_back(Vector3(0, 0, 1));
+  tris.push_back(Triangle(0, 1, 2));
+  BOOST_CHECK_THROW(skinpart->SetTriangles(5, tris), std::runtime_error);
+  BOOST_CHECK_NO_THROW(skinpart->SetTriangles(0, tris));
+}
+
+BOOST_AUTO_TEST_CASE(skinpart_triangles_numtriangles_test)
+{
+  // create a simple skin partition
+  NiSkinPartitionRef skinpart = new NiSkinPartition;
+  skinpart->SetNumPartitions(1);
+  vector<Vector3> verts;
+  vector<Triangle> tris;
+  verts.push_back(Vector3(0, 0, 0));
+  verts.push_back(Vector3(0, 1, 0));
+  verts.push_back(Vector3(0, 0, 1));
+  tris.push_back(Triangle(0, 1, 2));
+  skinpart->SetTriangles(0, tris);
+  BOOST_CHECK_EQUAL(skinpart->skinPartitionBlocks[0].numTriangles, 1);
+}
+
 BOOST_AUTO_TEST_SUITE_END()
-- 
GitLab