OSDN Git Service

implement pmx.writer
[meshio/pymeshio.git] / test / pmx_test.py
index 352cdb2..e9185ee 100644 (file)
@@ -1,36 +1,39 @@
 # coding: utf-8\r
-import pymeshio.pmx.loader\r
 import unittest\r
+import io\r
+import pymeshio.pmd\r
+import pymeshio.pmx.reader\r
+import pymeshio.pmx.writer\r
 \r
 \r
-PMX_FILE=u'resources/初音ミクVer2.pmx'\r
+PMX_FILE=pymeshio.unicode('resources/初音ミクVer2.pmx')\r
 \r
 \r
-class TestSequenceFunctions(unittest.TestCase):\r
+class TestPmx(unittest.TestCase):\r
     \r
     def setUp(self):\r
         pass\r
 \r
     def test_read(self):\r
-        model=pymeshio.pmx.loader.load(PMX_FILE)\r
+        model=pymeshio.pmx.reader.read_from_file(PMX_FILE)\r
         self.assertEqual(pymeshio.pmx.Model,  model.__class__)\r
-        self.assertEqual(u'初音ミク',  model.name)\r
-        self.assertEqual(u'Miku Hatsune',  model.english_name)\r
-        self.assertEqual(\r
-                u"PolyMo用モデルデータ:初音ミク ver.2.3\r\n"+\r
-                u"(物理演算対応モデル)\r\n"+\r
-                u"\r\n"+\r
-                u"モデリング      :あにまさ氏\r\n"+\r
-                u"データ変換      :あにまさ氏\r\n"+\r
-                u"Copyright    :CRYPTON FUTURE MEDIA, INC",\r
+        self.assertEqual(pymeshio.unicode('初音ミク'),  model.name)\r
+        self.assertEqual(pymeshio.unicode('Miku Hatsune'),  model.english_name)\r
+        self.assertEqual(pymeshio.unicode(\r
+                "PolyMo用モデルデータ:初音ミク ver.2.3\r\n"+\r
+                "(物理演算対応モデル)\r\n"+\r
+                "\r\n"+\r
+                "モデリング       :あにまさ氏\r\n"+\r
+                "データ変換       :あにまさ氏\r\n"+\r
+                "Copyright     :CRYPTON FUTURE MEDIA, INC"),\r
                 model.comment)\r
-        self.assertEqual(\r
-                u"MMD Model: Miku Hatsune ver.2.3\r\n"+\r
-                u"(Physical Model)\r\n"+\r
-                u"\r\n"+\r
-                u"Modeling by  Animasa\r\n"+\r
-                u"Converted by Animasa\r\n"+\r
-                u"Copyright            CRYPTON FUTURE MEDIA, INC",\r
+        self.assertEqual(pymeshio.unicode(\r
+                "MMD Model: Miku Hatsune ver.2.3\r\n"+\r
+                "(Physical Model)\r\n"+\r
+                "\r\n"+\r
+                "Modeling by   Animasa\r\n"+\r
+                "Converted by  Animasa\r\n"+\r
+                "Copyright             CRYPTON FUTURE MEDIA, INC"),\r
                 model.english_comment)\r
 \r
         self.assertEqual(12354,  len(model.vertices))\r
@@ -43,3 +46,14 @@ class TestSequenceFunctions(unittest.TestCase):
         self.assertEqual(45,  len(model.rigidbodies))\r
         self.assertEqual(27,  len(model.joints))\r
 \r
+    def test_write(self):\r
+        # read source file\r
+        buf=pymeshio.common.readall(PMX_FILE)\r
+        # read and write to out\r
+        model=pymeshio.pmx.reader.read(io.BytesIO(buf))\r
+        out=io.BytesIO()\r
+        pymeshio.pmx.writer.write(out, model)\r
+        # read out buffer again\r
+        model2=pymeshio.pmx.reader.read(io.BytesIO(out.getvalue()))\r
+        self.assertEqual(model, model2)\r
+\r