4 import pymeshio.common
\r
5 import pymeshio.pmd.reader
\r
6 import pymeshio.pmx.reader
\r
7 import pymeshio.pmx.writer
\r
8 import pymeshio.converter
\r
11 PMD_FILE=pymeshio.common.unicode('resources/初音ミクVer2.pmd')
\r
12 PMX_FILE=pymeshio.common.unicode('resources/初音ミクVer2.pmx')
\r
15 class TestPmx(unittest.TestCase):
\r
20 def test_read(self):
\r
21 model=pymeshio.pmx.reader.read_from_file(PMX_FILE)
\r
22 self.assertEqual(pymeshio.pmx.Model, model.__class__)
\r
23 self.assertEqual(pymeshio.common.unicode('初音ミク'), model.name)
\r
24 self.assertEqual(pymeshio.common.unicode('Miku Hatsune'), model.english_name)
\r
25 self.assertEqual(pymeshio.common.unicode(
\r
26 "PolyMo用モデルデータ:初音ミク ver.2.3\r\n"+
\r
31 "Copyright :CRYPTON FUTURE MEDIA, INC"),
\r
33 self.assertEqual(pymeshio.common.unicode(
\r
34 "MMD Model: Miku Hatsune ver.2.3\r\n"+
\r
35 "(Physical Model)\r\n"+
\r
37 "Modeling by Animasa\r\n"+
\r
38 "Converted by Animasa\r\n"+
\r
39 "Copyright CRYPTON FUTURE MEDIA, INC"),
\r
40 model.english_comment)
\r
42 self.assertEqual(12354, len(model.vertices))
\r
43 self.assertEqual(22961 * 3, len(model.indices))
\r
44 print("{0} textures".format(len(model.textures)))
\r
45 self.assertEqual(17, len(model.materials))
\r
46 self.assertEqual(140, len(model.bones))
\r
47 self.assertEqual(30, len(model.morphs))
\r
48 self.assertEqual(9, len(model.display_slots))
\r
49 self.assertEqual(45, len(model.rigidbodies))
\r
50 self.assertEqual(27, len(model.joints))
\r
52 def test_write(self):
\r
54 buf=pymeshio.common.readall(PMX_FILE)
\r
55 # read and write to out
\r
56 model=pymeshio.pmx.reader.read(io.BytesIO(buf))
\r
58 pymeshio.pmx.writer.write(out, model)
\r
59 # read out buffer again
\r
60 model2=pymeshio.pmx.reader.read(io.BytesIO(out.getvalue()))
\r
61 self.assertEqual(model, model2)
\r
63 def test_convert(self):
\r
65 pmd=pymeshio.pmd.reader.read_from_file(PMD_FILE)
\r
66 converted=pymeshio.converter.pmd_to_pmx(pmd)
\r
68 pmx=pymeshio.pmx.reader.read_from_file(PMX_FILE)
\r
71 #self.assertEqual(pmx, converted)
\r
72 pymeshio.pmx.writer.write(io.open("tmp.pmx", "wb"), converted)
\r