OSDN Git Service

refactoring pmd
[meshio/pymeshio.git] / test / pmd_test.py
index 0a8944e..606ca10 100644 (file)
@@ -1,9 +1,50 @@
+# coding: utf-8
 import pymeshio.pmd
+import pymeshio.pmd.loader
 import sys
+import unittest
 
-PMD_FILE="K:/MMD/model/official/miku.pmd"
 
-def test_pmd_load():
+PMD_FILE=u'resources/初音ミクVer2.pmd'
+
+
+def test_old_pmd_load():
     io=pymeshio.pmd.IO()
     assert io.read(PMD_FILE)
 
+
+class TestPmd(unittest.TestCase):
+    
+    def setUp(self):
+        pass
+
+    def test_read(self):
+        model=pymeshio.pmd.loader.load(PMD_FILE)
+        self.assertEqual(pymeshio.pmd.Model,  model.__class__)
+        self.assertEqual(u'初音ミク'.encode('cp932'),  model.name)
+        self.assertEqual(u'Miku Hatsune'.encode('cp932'),  model.english_name)
+        self.assertEqual((
+            u"PolyMo用モデルデータ:初音ミク ver.2.3\n"+
+            u"(物理演算対応モデル)\n"+
+            u"\n"+
+            u"モデリング  :あにまさ氏\n"+
+            u"データ変換  :あにまさ氏\n"+
+            u"Copyright        :CRYPTON FUTURE MEDIA, INC").encode('cp932'),
+            model.comment)
+        self.assertEqual((
+            u"MMD Model: Miku Hatsune ver.2.3\n"+
+            u"(Physical Model)\n"+
+            u"\n"+
+            u"Modeling by      Animasa\n"+
+            u"Converted by     Animasa\n"+
+            u"Copyright                CRYPTON FUTURE MEDIA, INC").encode('cp932'),
+            model.english_comment)
+        self.assertEqual(12354,  len(model.vertices))
+        self.assertEqual(22961 * 3,  len(model.indices))
+        print("{0} textures".format(len(model.toon_textures)))
+        self.assertEqual(17,  len(model.materials))
+        self.assertEqual(140,  len(model.bones))
+        self.assertEqual(31,  len(model.morphs))
+        self.assertEqual(45,  len(model.rigidbodies))
+        self.assertEqual(27,  len(model.joints))
+