OSDN Git Service

first commit.
[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                 //std::cout << l.getLineCount() << ',' << line << std::endl;
61         }
62         EXPECT_EQ(43, l.getLineCount());
63 }
64
65 TEST(mqo, read) 
66
67         //binary::FileReader reader("cube.mqo");
68         std::vector<char> all;
69         binary::readAll("cube.mqo", all);
70         binary::MemoryReader reader(&all[0], all.size());
71
72         mqo::IO io;
73         EXPECT_TRUE(io.read(reader));
74         EXPECT_EQ(1, io.objects.size());
75         EXPECT_EQ(8, io.objects[0].vertices.size());
76         EXPECT_EQ(6, io.objects[0].faces.size());
77 }
78
79 TEST(pmd, read) 
80
81         std::locale::global(std::locale("japanese"));
82         std::vector<char> all;
83         binary::readAll("\8f\89\89¹\83~\83NVer2.pmd", all);
84         binary::MemoryReader reader(&all[0], all.size());
85
86         pmd::IO io;
87         EXPECT_TRUE(io.read(reader));
88         //std::cout << io << std::endl;
89         EXPECT_STREQ("\8f\89\89¹\83~\83N", io.name);
90         EXPECT_EQ(17, io.materials.size());
91         EXPECT_EQ(12354, io.vertices.size());
92         EXPECT_EQ(68883, io.indices.size());
93         EXPECT_EQ(45, io.rigidbodies.size());
94         EXPECT_EQ(27, io.constraints.size());
95 }
96
97 TEST(vmd, read)
98 {
99         std::locale::global(std::locale("japanese"));
100         std::vector<char> all;
101         binary::readAll("mikumiku.vmd", all);
102         binary::MemoryReader reader(&all[0], all.size());
103
104         vmd::IO io;
105         EXPECT_TRUE(io.read(reader));
106         //std::cout << io << std::endl;
107         EXPECT_EQ(122, io.boneMap.size());
108         EXPECT_EQ(16, io.morphMap.size());
109 }
110
111 int main(int argc, char **argv)
112 {
113         testing::InitGoogleTest(&argc, argv); 
114         RUN_ALL_TESTS();
115 }
116