void GameState::storeDouble(double value) { union { uint64_t ull; double db; } double_union; double_union.db = value; storeUInt64(double_union.ull); }
TEST(CommonTest, StoreUInt64SomethingElse) { uint64_t const value = 0xab12760039; storeUInt64(&LocalBuffer[0], value); ASSERT_EQ(0x39, LocalBuffer[0]); ASSERT_EQ(0x00, LocalBuffer[1]); ASSERT_EQ(0x76, LocalBuffer[2]); ASSERT_EQ(0x12, LocalBuffer[3]); ASSERT_EQ(0xab, LocalBuffer[4]); ASSERT_EQ(0x00, LocalBuffer[5]); ASSERT_EQ(0x00, LocalBuffer[6]); ASSERT_EQ(0x00, LocalBuffer[7]); ASSERT_EQ(value, readUInt64(&LocalBuffer[0])); }
TEST(CommonTest, StoreUInt64Something) { uint64_t const value = 259; storeUInt64(&LocalBuffer[0], value); ASSERT_EQ(0x03, LocalBuffer[0]); ASSERT_EQ(0x01, LocalBuffer[1]); ASSERT_EQ(0x00, LocalBuffer[2]); ASSERT_EQ(0x00, LocalBuffer[3]); ASSERT_EQ(0x00, LocalBuffer[4]); ASSERT_EQ(0x00, LocalBuffer[5]); ASSERT_EQ(0x00, LocalBuffer[6]); ASSERT_EQ(0x00, LocalBuffer[7]); ASSERT_EQ(value, readUInt64(&LocalBuffer[0])); }
TEST(CommonTest, StoreUInt64SomethingMore) { uint64_t const value = 0x7f9831ab12761339; storeUInt64(&LocalBuffer[0], value); ASSERT_EQ(0x39, LocalBuffer[0]); ASSERT_EQ(0x13, LocalBuffer[1]); ASSERT_EQ(0x76, LocalBuffer[2]); ASSERT_EQ(0x12, LocalBuffer[3]); ASSERT_EQ(0xab, LocalBuffer[4]); ASSERT_EQ(0x31, LocalBuffer[5]); ASSERT_EQ(0x98, LocalBuffer[6]); ASSERT_EQ(0x7f, LocalBuffer[7]); ASSERT_EQ(value, readUInt64(&LocalBuffer[0])); }
TEST(CommonTest, StoreUInt64Zero) { uint64_t const value = 0; storeUInt64(&LocalBuffer[0], value); ASSERT_EQ(0UL, LocalBuffer[0]); ASSERT_EQ(0UL, LocalBuffer[1]); ASSERT_EQ(0UL, LocalBuffer[2]); ASSERT_EQ(0UL, LocalBuffer[3]); ASSERT_EQ(0UL, LocalBuffer[4]); ASSERT_EQ(0UL, LocalBuffer[5]); ASSERT_EQ(0UL, LocalBuffer[6]); ASSERT_EQ(0UL, LocalBuffer[7]); ASSERT_EQ(value, readUInt64(&LocalBuffer[0])); }
TEST(CommonTest, StoreUInt64Max) { uint64_t const value = 0xffffffffffffffffULL; storeUInt64(&LocalBuffer[0], value); ASSERT_EQ(0xff, LocalBuffer[0]); ASSERT_EQ(0xff, LocalBuffer[1]); ASSERT_EQ(0xff, LocalBuffer[2]); ASSERT_EQ(0xff, LocalBuffer[3]); ASSERT_EQ(0xff, LocalBuffer[4]); ASSERT_EQ(0xff, LocalBuffer[5]); ASSERT_EQ(0xff, LocalBuffer[6]); ASSERT_EQ(0xff, LocalBuffer[7]); ASSERT_EQ(value, readUInt64(&LocalBuffer[0])); }
void GameState::storeInt64(int64_t value) { storeUInt64((uint64_t)value); }