Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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();
}