5 import pymeshio.pmx.reader
\r
6 import pymeshio.pmx.writer
\r
9 PMX_FILE=pymeshio.unicode('resources/初音ミクVer2.pmx')
\r
12 class TestPmx(unittest.TestCase):
\r
17 def test_read(self):
\r
18 model=pymeshio.pmx.reader.read_from_file(PMX_FILE)
\r
19 self.assertEqual(pymeshio.pmx.Model, model.__class__)
\r
20 self.assertEqual(pymeshio.unicode('初音ミク'), model.name)
\r
21 self.assertEqual(pymeshio.unicode('Miku Hatsune'), model.english_name)
\r
22 self.assertEqual(pymeshio.unicode(
\r
23 "PolyMo用モデルデータ:初音ミク ver.2.3\r\n"+
\r
28 "Copyright :CRYPTON FUTURE MEDIA, INC"),
\r
30 self.assertEqual(pymeshio.unicode(
\r
31 "MMD Model: Miku Hatsune ver.2.3\r\n"+
\r
32 "(Physical Model)\r\n"+
\r
34 "Modeling by Animasa\r\n"+
\r
35 "Converted by Animasa\r\n"+
\r
36 "Copyright CRYPTON FUTURE MEDIA, INC"),
\r
37 model.english_comment)
\r
39 self.assertEqual(12354, len(model.vertices))
\r
40 self.assertEqual(22961 * 3, len(model.indices))
\r
41 print("{0} textures".format(len(model.textures)))
\r
42 self.assertEqual(17, len(model.materials))
\r
43 self.assertEqual(140, len(model.bones))
\r
44 self.assertEqual(30, len(model.morphs))
\r
45 self.assertEqual(9, len(model.display_slots))
\r
46 self.assertEqual(45, len(model.rigidbodies))
\r
47 self.assertEqual(27, len(model.joints))
\r
49 def test_write(self):
\r
51 buf=pymeshio.common.readall(PMX_FILE)
\r
52 # read and write to out
\r
53 model=pymeshio.pmx.reader.read(io.BytesIO(buf))
\r
55 pymeshio.pmx.writer.write(out, model)
\r
56 # read out buffer again
\r
57 model2=pymeshio.pmx.reader.read(io.BytesIO(out.getvalue()))
\r
58 self.assertEqual(model, model2)
\r