MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / TEST

Function TEST

Engine/source/core/util/test/swizzleTest.cpp:47–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45U32 TestStruct::smIdx = 0;
46
47TEST(Swizzle, Swizzle)
48{
49 //------------------------------------------------------------------------
50 // Debugger-Observable Functionality Tests
51 //------------------------------------------------------------------------
52 U8 simpleBuffer[] = { 0, 1, 2, 3 };
53 U8 simpleTest[] = { 0, 1, 2, 3 };
54
55#define RESET_SIMPLE() dMemcpy( simpleTest, simpleBuffer, sizeof( simpleBuffer ) )
56
57 //------------------------------------------------------------------------
58 // No-switch test
59 dsize_t noSwzl4[] = { 0, 1, 2, 3 };
60 Swizzle<U8,4> noSwizzle4( noSwzl4 );
61
62 noSwizzle4.InPlace( simpleTest, sizeof( simpleTest ) );
63 EXPECT_EQ( dMemcmp( simpleTest, simpleBuffer, sizeof( simpleBuffer ) ), 0 )
64 << "No-switch test failed!";
65 RESET_SIMPLE();
66
67 //------------------------------------------------------------------------
68 // No-brainer RGBA->BGRA test
69 dsize_t bgraSwzl[] = { 2, 1, 0, 3 };
70 Swizzle<U8,4> bgraSwizzle( bgraSwzl );
71
72 U8 bgraTest[] = { 2, 1, 0, 3 };
73 bgraSwizzle.InPlace( simpleTest, sizeof( simpleTest ) );
74 EXPECT_EQ( dMemcmp( simpleTest, bgraTest, sizeof( bgraTest ) ), 0 )
75 << "U8 RGBA->BGRA test failed";
76
77 //------------------------------------------------------------------------
78 // Reverse test
79 bgraSwizzle.InPlace( simpleTest, sizeof( simpleTest ) );
80 EXPECT_EQ( dMemcmp( simpleTest, simpleBuffer, sizeof( simpleBuffer ) ), 0 )
81 << "U8 RGBA->BGRA reverse test failed";
82
83 RESET_SIMPLE();
84
85 //------------------------------------------------------------------------
86 // Object support test
87 Swizzle<TestStruct,4> bgraObjSwizzle( bgraSwzl );
88 {
89 U32 objIdx[] = { 0, 1, 2, 3 };
90
91 FrameTemp<TestStruct> objTest( sizeof( objIdx ) / sizeof( U32 ) );
92 FrameTemp<U32> randData( sizeof( objIdx ) / sizeof( U32 ) );
93
94 bool same = true;
95
96 for( U32 i = 0; i < sizeof( objIdx ) / sizeof( U32 ); i++ )
97 {
98 // Make random data and assign it
99 randData[i] = gRandGen.randI();
100 objTest[i].Data( randData[i] );
101
102 // Continue object sanity check
103 same &= ( objTest[i].Idx() == objIdx[i] );
104 }

Callers

nothing calls this directly

Calls 5

IdxMethod · 0.80
randIMethod · 0.60
dMemcmpFunction · 0.50
InPlaceMethod · 0.45
DataMethod · 0.45

Tested by

no test coverage detected