浏览代码

test: add a few unit tests for datatype sanity.

legacy
Sam Hocevar sam 12 年前
父节点
当前提交
a4fb64d6c8
共有 1 个文件被更改,包括 83 次插入26 次删除
  1. +83
    -26
      test/unit/build.cpp

+ 83
- 26
test/unit/build.cpp 查看文件

@@ -1,7 +1,7 @@
//
// Lol Engine
//
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
// Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net>
// This program is free software; you can redistribute it and/or
// modify it under the terms of the Do What The Fuck You Want To
// Public License, Version 2, as published by Sam Hocevar. See
@@ -20,52 +20,109 @@ namespace lol

LOLUNIT_FIXTURE(BuildTest)
{
LOLUNIT_TEST(TypeSize)
LOLUNIT_TEST(TypeSizeHalf)
{
LOLUNIT_ASSERT_EQUAL(sizeof(half), 2);
//LOLUNIT_ASSERT_EQUAL(sizeof(f16vec2), 4);
//LOLUNIT_ASSERT_EQUAL(sizeof(f16vec3), 6);
//LOLUNIT_ASSERT_EQUAL(sizeof(f16vec4), 8);
//LOLUNIT_ASSERT_EQUAL(sizeof(f16mat4), 32);

LOLUNIT_ASSERT_EQUAL(sizeof(f16vec2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(f16vec3), 6);
LOLUNIT_ASSERT_EQUAL(sizeof(f16vec4), 8);

LOLUNIT_ASSERT_EQUAL(sizeof(f16mat2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(f16mat3), 18);
LOLUNIT_ASSERT_EQUAL(sizeof(f16mat4), 32);
}

LOLUNIT_TEST(TypeSizeFloat)
{
LOLUNIT_ASSERT_EQUAL(sizeof(float), 4);

LOLUNIT_ASSERT_EQUAL(sizeof(vec2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(vec3), 12);
LOLUNIT_ASSERT_EQUAL(sizeof(vec4), 16);

LOLUNIT_ASSERT_EQUAL(sizeof(mat2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(mat3), 36);
LOLUNIT_ASSERT_EQUAL(sizeof(mat4), 64);
}

LOLUNIT_TEST(TypeSizeDouble)
{
LOLUNIT_ASSERT_EQUAL(sizeof(double), 8);

LOLUNIT_ASSERT_EQUAL(sizeof(f64vec2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(f64vec3), 24);
LOLUNIT_ASSERT_EQUAL(sizeof(f64vec4), 32);

LOLUNIT_ASSERT_EQUAL(sizeof(f64mat2), 32);
LOLUNIT_ASSERT_EQUAL(sizeof(f64mat3), 72);
LOLUNIT_ASSERT_EQUAL(sizeof(f64mat4), 128);
}

LOLUNIT_TEST(TypeSizeInt8)
{
LOLUNIT_ASSERT_EQUAL(sizeof(i8vec2), 2);
LOLUNIT_ASSERT_EQUAL(sizeof(u8vec2), 2);
LOLUNIT_ASSERT_EQUAL(sizeof(i16vec2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(u16vec2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(ivec2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(uvec2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(i64vec2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(u64vec2), 16);

LOLUNIT_ASSERT_EQUAL(sizeof(i8vec3), 3);
LOLUNIT_ASSERT_EQUAL(sizeof(u8vec3), 3);
LOLUNIT_ASSERT_EQUAL(sizeof(i16vec3), 6);
LOLUNIT_ASSERT_EQUAL(sizeof(u16vec3), 6);
LOLUNIT_ASSERT_EQUAL(sizeof(ivec3), 12);
LOLUNIT_ASSERT_EQUAL(sizeof(uvec3), 12);
LOLUNIT_ASSERT_EQUAL(sizeof(i64vec3), 24);
LOLUNIT_ASSERT_EQUAL(sizeof(u64vec3), 24);

LOLUNIT_ASSERT_EQUAL(sizeof(i8vec4), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(u8vec4), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(i16vec4), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(u16vec4), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(ivec4), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(uvec4), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(i64vec4), 32);
LOLUNIT_ASSERT_EQUAL(sizeof(u64vec4), 32);

LOLUNIT_ASSERT_EQUAL(sizeof(i8mat2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(u8mat2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(i8mat3), 9);
LOLUNIT_ASSERT_EQUAL(sizeof(u8mat3), 9);
LOLUNIT_ASSERT_EQUAL(sizeof(i8mat4), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(u8mat4), 16);
}

LOLUNIT_TEST(TypeSizeInt16)
{
LOLUNIT_ASSERT_EQUAL(sizeof(i16vec2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(u16vec2), 4);
LOLUNIT_ASSERT_EQUAL(sizeof(i16vec3), 6);
LOLUNIT_ASSERT_EQUAL(sizeof(u16vec3), 6);
LOLUNIT_ASSERT_EQUAL(sizeof(i16vec4), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(u16vec4), 8);

LOLUNIT_ASSERT_EQUAL(sizeof(i16mat2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(u16mat2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(i16mat3), 18);
LOLUNIT_ASSERT_EQUAL(sizeof(u16mat3), 18);
LOLUNIT_ASSERT_EQUAL(sizeof(i16mat4), 32);
LOLUNIT_ASSERT_EQUAL(sizeof(u16mat4), 32);
}

LOLUNIT_TEST(TypeSizeInt32)
{
LOLUNIT_ASSERT_EQUAL(sizeof(ivec2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(uvec2), 8);
LOLUNIT_ASSERT_EQUAL(sizeof(ivec3), 12);
LOLUNIT_ASSERT_EQUAL(sizeof(uvec3), 12);
LOLUNIT_ASSERT_EQUAL(sizeof(ivec4), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(uvec4), 16);

LOLUNIT_ASSERT_EQUAL(sizeof(imat2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(umat2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(imat3), 36);
LOLUNIT_ASSERT_EQUAL(sizeof(umat3), 36);
LOLUNIT_ASSERT_EQUAL(sizeof(imat4), 64);
LOLUNIT_ASSERT_EQUAL(sizeof(umat4), 64);
}

LOLUNIT_TEST(TypeSizeInt64)
{
LOLUNIT_ASSERT_EQUAL(sizeof(i64vec2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(u64vec2), 16);
LOLUNIT_ASSERT_EQUAL(sizeof(i64vec3), 24);
LOLUNIT_ASSERT_EQUAL(sizeof(u64vec3), 24);
LOLUNIT_ASSERT_EQUAL(sizeof(i64vec4), 32);
LOLUNIT_ASSERT_EQUAL(sizeof(u64vec4), 32);

LOLUNIT_ASSERT_EQUAL(sizeof(i64mat2), 32);
LOLUNIT_ASSERT_EQUAL(sizeof(u64mat2), 32);
LOLUNIT_ASSERT_EQUAL(sizeof(i64mat3), 72);
LOLUNIT_ASSERT_EQUAL(sizeof(u64mat3), 72);
LOLUNIT_ASSERT_EQUAL(sizeof(i64mat4), 128);
LOLUNIT_ASSERT_EQUAL(sizeof(u64mat4), 128);
}


正在加载...
取消
保存