6 import pymeshio.pmd.reader
7 import pymeshio.pmd.writer
10 PMD_FILE=u'resources/初音ミクVer2.pmd'
13 def test_old_pmd_load():
14 loader=pymeshio.pmd.IO()
15 assert loader.read(PMD_FILE)
18 class TestPmd(unittest.TestCase):
24 model=pymeshio.pmd.reader.read_from_file(PMD_FILE)
25 self.assertEqual(pymeshio.pmd.Model, model.__class__)
26 self.assertEqual(u'初音ミク'.encode('cp932'), model.name)
27 self.assertEqual(u'Miku Hatsune'.encode('cp932'), model.english_name)
29 u"PolyMo用モデルデータ:初音ミク ver.2.3\n"+
34 u"Copyright :CRYPTON FUTURE MEDIA, INC").encode('cp932'),
37 u"MMD Model: Miku Hatsune ver.2.3\n"+
38 u"(Physical Model)\n"+
40 u"Modeling by Animasa\n"+
41 u"Converted by Animasa\n"+
42 u"Copyright CRYPTON FUTURE MEDIA, INC").encode('cp932'),
43 model.english_comment)
44 self.assertEqual(12354, len(model.vertices))
45 self.assertEqual(22961 * 3, len(model.indices))
46 print("{0} textures".format(len(model.toon_textures)))
47 self.assertEqual(17, len(model.materials))
48 self.assertEqual(140, len(model.bones))
49 self.assertEqual(31, len(model.morphs))
50 self.assertEqual(45, len(model.rigidbodies))
51 self.assertEqual(27, len(model.joints))
55 buf=pymeshio.common.readall(PMD_FILE)
56 # read and write to out
57 model=pymeshio.pmd.reader.read(io.BytesIO(buf))
59 pymeshio.pmd.writer.write(out, model)
60 # read out buffer again
61 model2=pymeshio.pmd.reader.read(io.BytesIO(out.getvalue()))
62 self.assertEqual(model, model2)