7 import pymeshio.pmd.reader
8 import pymeshio.pmd.writer
11 PMD_FILE=pymeshio.common.unicode('resources/初音ミクVer2.pmd')
14 class TestPmd(unittest.TestCase):
20 model=pymeshio.pmd.reader.read_from_file(PMD_FILE)
21 self.assertEqual(pymeshio.pmd.Model, model.__class__)
22 self.assertEqual(pymeshio.common.unicode('初音ミク').encode('cp932'), model.name)
23 self.assertEqual(pymeshio.common.unicode('Miku Hatsune').encode('cp932'), model.english_name)
24 self.assertEqual(pymeshio.common.unicode(
25 "PolyMo用モデルデータ:初音ミク ver.2.3\n"+
30 "Copyright :CRYPTON FUTURE MEDIA, INC").encode('cp932'),
32 self.assertEqual(pymeshio.common.unicode(
33 "MMD Model: Miku Hatsune ver.2.3\n"+
36 "Modeling by Animasa\n"+
37 "Converted by Animasa\n"+
38 "Copyright CRYPTON FUTURE MEDIA, INC").encode('cp932'),
39 model.english_comment)
40 self.assertEqual(12354, len(model.vertices))
41 self.assertEqual(22961 * 3, len(model.indices))
42 print("{0} textures".format(len(model.toon_textures)))
43 self.assertEqual(17, len(model.materials))
44 self.assertEqual(140, len(model.bones))
45 self.assertEqual(31, len(model.morphs))
46 self.assertEqual(45, len(model.rigidbodies))
47 self.assertEqual(27, len(model.joints))
51 buf=pymeshio.common.readall(PMD_FILE)
52 # read and write to out
53 model=pymeshio.pmd.reader.read(io.BytesIO(buf))
55 pymeshio.pmd.writer.write(out, model)
56 # read out buffer again
57 model2=pymeshio.pmd.reader.read(io.BytesIO(out.getvalue()))
59 self.assertEqual(model, model2)