int main( int argc, char** argv ) { InitTests(argc, argv); AddTest("Format() works correct.", FormatTest); AddTest("Log handler can handle log lines.", LogHandlerTest); AddTest("CopyString() is correct.", CopyStringTest); return RunTests(); }
int main( int argc, char** argv ) { InitTests(argc, argv); Describe("MeshBuffer") .use(dummySignalSandbox) .it("can be created, modified and freed.", [](){ MeshBuffer* buffer = CreateMeshBuffer(); AddVertexToMeshBuffer(buffer, CreateVertex(0,0,0)); AddIndexToMeshBuffer(buffer, 0); FreeMeshBuffer(buffer); }) .it("can be transformed.", [](){ MeshBuffer* buffer = CreateMeshBuffer(); AddVertexToMeshBuffer(buffer, CreateVertex(0,0,0)); AddIndexToMeshBuffer(buffer, 0); AddVertexToMeshBuffer(buffer, CreateVertex(0,1,0)); AddIndexToMeshBuffer(buffer, 1); const Vec3 v = {{1,0,0}}; const Mat4 m = TranslateMat4(Mat4Identity, v); TransformMeshBuffer(buffer, m); const Vertex* vertices = GetMeshBufferVertices(buffer); const Vec3 v1 = {{1,0,0}}; const Vec3 v2 = {{1,1,0}}; Require(vertices[0].position == v1); Require(vertices[1].position == v2); // TODO: Test if normal and tangent are transformed correctly. FreeMeshBuffer(buffer); }) .it("can be appended to another buffer.", [](){ MeshBuffer* a = CreateMeshBuffer(); AddVertexToMeshBuffer(a, CreateVertex(0,0,0)); AddIndexToMeshBuffer(a, 0); AddVertexToMeshBuffer(a, CreateVertex(0,1,0)); AddIndexToMeshBuffer(a, 1); MeshBuffer* b = CreateMeshBuffer(); AddVertexToMeshBuffer(b, CreateVertex(2,3,4)); AddIndexToMeshBuffer(b, 0); AddVertexToMeshBuffer(b, CreateVertex(5,6,7)); AddIndexToMeshBuffer(b, 1); AppendMeshBuffer(a, b, NULL); const Vertex* vertices = GetMeshBufferVertices(a); const VertexIndex* indices = GetMeshBufferIndices(a); Require(GetMeshBufferVertexCount(a) == 4); const Vec3 v2 = {{2,3,4}}; const Vec3 v3 = {{5,6,7}}; Require(vertices[2].position == v2); Require(vertices[3].position == v3); Require(GetMeshBufferIndexCount(a) == 4); Require(indices[2] == 2); Require(indices[3] == 3); FreeMeshBuffer(a); FreeMeshBuffer(b); }) .it("can be appended to another buffer while transforming it.", [](){ MeshBuffer* a = CreateMeshBuffer(); AddVertexToMeshBuffer(a, CreateVertex(0,0,0)); AddIndexToMeshBuffer(a, 0); AddVertexToMeshBuffer(a, CreateVertex(0,1,0)); AddIndexToMeshBuffer(a, 1); MeshBuffer* b = CreateMeshBuffer(); AddVertexToMeshBuffer(b, CreateVertex(2,3,4)); AddIndexToMeshBuffer(b, 0); AddVertexToMeshBuffer(b, CreateVertex(5,6,7)); AddIndexToMeshBuffer(b, 1); const Vec3 v = {{1,0,0}}; const Mat4 m = TranslateMat4(Mat4Identity, v); AppendMeshBuffer(a, b, &m); const Vertex* vertices = GetMeshBufferVertices(a); const VertexIndex* indices = GetMeshBufferIndices(a); Require(GetMeshBufferVertexCount(a) == 4); const Vec3 v2 = {{3,3,4}}; const Vec3 v3 = {{6,6,7}}; Require(vertices[2].position == v2); Require(vertices[3].position == v3); Require(GetMeshBufferIndexCount(a) == 4); Require(indices[2] == 2); Require(indices[3] == 3); // TODO: Test if normal and tangent are transformed correctly. FreeMeshBuffer(a); FreeMeshBuffer(b); }); return RunTests(); }
int main( int argc, char** argv ) { InitTests(argc, argv); Describe("Config module") .use(dummyExceptionSandbox) .it("can be initialized empty.", [](){ Require(InitConfig(0, NULL) == true); DestroyConfig(); }) .it("has a proper destructor.", [](){ const char* argv[] = {"", "--aaa=bbb"}; { Require(InitConfig(2, argv) == true); ConfigScope scope; Require(strcmp(GetConfigString("aaa",""), "bbb") == 0); } { Require(InitConfig(0, NULL) == true); ConfigScope scope; Require(GetConfigString("aaa",NULL) == NULL); } }) .it("can parse arguments.", [](){ const char* argv[] = {"", "--aaa=bbb", "--foo=bar", "--ccc=ddd"}; Require(InitConfig(4, argv) == true); ConfigScope scope; Require(strcmp(GetConfigString("foo",""), "bar") == 0); Require(strcmp(GetConfigString("foo","yyy"), "bar") == 0); Require(strcmp(GetConfigString("foo",NULL), "bar") == 0); Require(strcmp(GetConfigString("xxx",""), "") == 0); Require(strcmp(GetConfigString("xxx","yyy"), "yyy") == 0); Require(GetConfigString("xxx",NULL) == NULL); }) .it("can convert integer values.", [](){ const char* argv[] = {"", "--aaa=42", "--bbb=1.1", "--ccc=1.9"}; Require(InitConfig(4, argv) == true); ConfigScope scope; Require(GetConfigInt("aaa", 0) == 42); Require(GetConfigInt("bbb", 0) == 1); Require(GetConfigInt("ccc", 0) == 1); Require(GetConfigInt("xxx", 0) == 0); }) .it("can convert floating point values.", [](){ const char* argv[] = {"", "--aaa=42", "--bbb=1.1", "--ccc=1.9"}; Require(InitConfig(4, argv) == true); ConfigScope scope; Require(GetConfigFloat("aaa", 0) == 42); Require(GetConfigFloat("bbb", 0) == 1.1f); Require(GetConfigFloat("ccc", 0) == 1.9f); Require(GetConfigFloat("xxx", 0.1f) == 0.1f); }) .it("can convert boolean values.", [](){ const char* argv[] = { "", "--aaa=42", "--bbb=1.1", "--ccc=1.9", "--ddd=0", "--eee=0.0", "--fff=true", "--ggg=false", "--hhh=yes", "--jjj=no"}; Require(InitConfig(10, argv) == true); ConfigScope scope; Require(GetConfigBool("aaa", false) == true); Require(GetConfigBool("bbb", false) == true); Require(GetConfigBool("ccc", false) == true); Require(GetConfigBool("ddd", true) == false); Require(GetConfigBool("eee", true) == false); Require(GetConfigBool("fff", false) == true); Require(GetConfigBool("ggg", true) == false); Require(GetConfigBool("hhh", false) == true); Require(GetConfigBool("jjj", true) == false); Require(GetConfigBool("xxx", true) == true); Require(GetConfigBool("xxx", false) == false); }) .it("can parse ini files.", [](){ const char* argv[] = {"", "--config=config/Test.ini"}; Require(InitConfig(2, argv) == true); ConfigScope scope; Require(GetConfigString("config", NULL) == NULL); Require(strcmp(GetConfigString("aaa", ""), "bbb") == 0); Require(strcmp(GetConfigString("foo.bar", ""), "baz") == 0); Require(strcmp(GetConfigString("foo.hello", ""), "Hello World") == 0); }); return RunTests(); }