OSDN Git Service

fixed by @santarh
[meshio/meshio.git] / test / main.cpp
1 #include <gtest/gtest.h> 
2 #include <fstream>
3 #include <sstream>
4
5 #include <meshio.h>
6 using namespace meshio;
7
8 TEST(binary, FileReader)
9 {
10         binary::FileReader reader("cube.mqo");
11
12         char buf[1024];
13         while(reader.read(buf, 1024)){
14         }
15         EXPECT_EQ(1235, reader.getPos());
16 }
17
18 TEST(binary, MemoryReader)
19 {
20         std::vector<char> all;
21         binary::readAll("cube.mqo", all);
22         binary::MemoryReader reader(&all[0], all.size());
23         char buf[1024];
24         while(reader.read(buf, 1024)){
25         }
26         EXPECT_EQ(1235, reader.getPos());
27 }
28
29 TEST(text, LineReader)
30 {
31         binary::FileReader reader("cube.mqo");
32         text::LineReader<
33                 text::IsCRLF, 
34                 text::IsWhiteSpace, 
35                 text::IsEmpty> l(reader);
36         EXPECT_EQ("Metasequoia Document", l.getLine().str());
37         EXPECT_EQ("Format Text Ver 1.0", l.getLine().str());
38
39         {
40                 text::cstr line=l.getLine();
41                 text::LineSplitter<text::IsWhiteSpace> splitter(line);
42                 EXPECT_EQ("Scene", splitter.get().str());
43         }
44
45         {
46                 text::cstr line=l.getLine();
47                 text::LineSplitter<text::IsWhiteSpace> splitter(line);
48                 EXPECT_EQ("pos", splitter.get().str());
49                 EXPECT_EQ(0.0000f, splitter.getFloat());
50                 EXPECT_EQ(0.0000f, splitter.getFloat());
51                 EXPECT_EQ(1500.0000f, splitter.getFloat());
52         }
53   
54         while(true)
55         {
56                 text::cstr line=l.getLine();
57                 if(l.isEnd()){
58                         break;
59                 }
60         }
61         EXPECT_EQ(43, l.getLineCount());
62 }
63
64 TEST(mqo, read) 
65
66         mqo::IO io;
67         EXPECT_TRUE(io.read("cube.mqo"));
68         EXPECT_EQ(1, io.objects.size());
69         EXPECT_EQ(8, io.objects[0].vertices.size());
70         EXPECT_EQ(6, io.objects[0].faces.size());
71 }
72
73 TEST(mqo, write) 
74
75         {
76                 mqo::IO io;
77                 EXPECT_TRUE(io.read("cube.mqo"));
78                 EXPECT_EQ(1, io.objects.size());
79                 EXPECT_EQ(8, io.objects[0].vertices.size());
80                 EXPECT_EQ(6, io.objects[0].faces.size());
81                 EXPECT_TRUE(io.write("cube2.mqo"));
82                 EXPECT_EQ(0, io.materials.size());
83         }
84
85         {
86                 mqo::IO io;
87                 EXPECT_TRUE(io.read("cube2.mqo"));
88                 EXPECT_EQ(1, io.objects.size());
89                 EXPECT_EQ(8, io.objects[0].vertices.size());
90                 EXPECT_EQ(6, io.objects[0].faces.size());
91         }
92 }
93
94 TEST(pmd, read) 
95
96         pmd::IO io;
97         EXPECT_TRUE(io.read(L"\8f\89\89¹\83~\83NVer2.pmd"));
98         EXPECT_STREQ("\8f\89\89¹\83~\83N", io.name);
99         EXPECT_EQ(17, io.materials.size());
100         EXPECT_EQ(12354, io.vertices.size());
101         EXPECT_EQ(68883, io.indices.size());
102         EXPECT_EQ(45, io.rigidbodies.size());
103         EXPECT_EQ(27, io.constraints.size());
104 }
105
106 TEST(pmd, write) 
107
108         {
109                 pmd::IO io;
110                 EXPECT_TRUE(io.read(L"\8f\89\89¹\83~\83NVer2.pmd"));
111                 EXPECT_STREQ("\8f\89\89¹\83~\83N", io.name);
112                 EXPECT_EQ(17, io.materials.size());
113                 EXPECT_EQ(12354, io.vertices.size());
114                 EXPECT_EQ(68883, io.indices.size());
115                 EXPECT_EQ(45, io.rigidbodies.size());
116                 EXPECT_EQ(27, io.constraints.size());
117                 EXPECT_TRUE(io.write("miku.pmd"));
118         }
119
120         {
121                 pmd::IO io;
122                 EXPECT_TRUE(io.read(L"miku.pmd"));
123                 EXPECT_STREQ("\8f\89\89¹\83~\83N", io.name);
124                 EXPECT_EQ(17, io.materials.size());
125                 EXPECT_EQ(12354, io.vertices.size());
126                 EXPECT_EQ(68883, io.indices.size());
127                 //EXPECT_EQ(45, io.rigidbodies.size());
128                 //EXPECT_EQ(27, io.constraints.size());
129         }
130
131         {
132                 pmd::IO io;
133                 EXPECT_TRUE(io.write("miku.pmd"));
134         }
135 }
136
137 TEST(vmd, read)
138 {
139         vmd::IO io;
140         EXPECT_TRUE(io.read("mikumiku.vmd"));
141         EXPECT_EQ(122, io.boneMap.size());
142         EXPECT_EQ(16, io.morphMap.size());
143 }
144
145 int main(int argc, char **argv)
146 {
147         testing::InitGoogleTest(&argc, argv); 
148         RUN_ALL_TESTS();
149 }
150