Files
yaze/test/unit/core/hex_test.cc
scawful 97f00d3fc6 Add E2E and ZSCustomOverworld test suites for comprehensive testing
- Introduced new E2E test suite for comprehensive ROM testing, validating the complete ROM editing workflow.
- Added ZSCustomOverworld test suite to validate version upgrades and data integrity.
- Updated `EditorManager` to register the new test suites.
- Enhanced CMake configuration to include the new test files.
- Updated README to reflect the new testing capabilities and best practices for AI agent testing.
2025-09-28 15:11:31 -04:00

103 lines
3.3 KiB
C++

#include "testing.h"
#include "util/hex.h"
namespace yaze {
namespace test {
using ::testing::Eq;
TEST(HexTest, HexByte) {
// Test basic byte conversion
EXPECT_THAT(util::HexByte(0x00), Eq("$00"));
EXPECT_THAT(util::HexByte(0xFF), Eq("$FF"));
EXPECT_THAT(util::HexByte(0x1A), Eq("$1A"));
// Test different prefixes
util::HexStringParams params;
params.prefix = util::HexStringParams::Prefix::kNone;
EXPECT_THAT(util::HexByte(0x1A, params), Eq("1A"));
params.prefix = util::HexStringParams::Prefix::kHash;
EXPECT_THAT(util::HexByte(0x1A, params), Eq("#1A"));
params.prefix = util::HexStringParams::Prefix::k0x;
EXPECT_THAT(util::HexByte(0x1A, params), Eq("0x1A"));
// Test lowercase
params.prefix = util::HexStringParams::Prefix::kNone;
params.uppercase = false;
EXPECT_THAT(util::HexByte(0x1A, params), Eq("1a"));
}
TEST(HexTest, HexWord) {
// Test basic word conversion
EXPECT_THAT(util::HexWord(0x0000), Eq("$0000"));
EXPECT_THAT(util::HexWord(0xFFFF), Eq("$FFFF"));
EXPECT_THAT(util::HexWord(0x1A2B), Eq("$1A2B"));
// Test different prefixes
util::HexStringParams params;
params.prefix = util::HexStringParams::Prefix::kNone;
EXPECT_THAT(util::HexWord(0x1A2B, params), Eq("1A2B"));
params.prefix = util::HexStringParams::Prefix::kHash;
EXPECT_THAT(util::HexWord(0x1A2B, params), Eq("#1A2B"));
params.prefix = util::HexStringParams::Prefix::k0x;
EXPECT_THAT(util::HexWord(0x1A2B, params), Eq("0x1A2B"));
// Test lowercase
params.prefix = util::HexStringParams::Prefix::kNone;
params.uppercase = false;
EXPECT_THAT(util::HexWord(0x1A2B, params), Eq("1a2b"));
}
TEST(HexTest, HexLong) {
// Test basic long conversion
EXPECT_THAT(util::HexLong(0x000000), Eq("$000000"));
EXPECT_THAT(util::HexLong(0xFFFFFF), Eq("$FFFFFF"));
EXPECT_THAT(util::HexLong(0x1A2B3C), Eq("$1A2B3C"));
// Test different prefixes
util::HexStringParams params;
params.prefix = util::HexStringParams::Prefix::kNone;
EXPECT_THAT(util::HexLong(0x1A2B3C, params), Eq("1A2B3C"));
params.prefix = util::HexStringParams::Prefix::kHash;
EXPECT_THAT(util::HexLong(0x1A2B3C, params), Eq("#1A2B3C"));
params.prefix = util::HexStringParams::Prefix::k0x;
EXPECT_THAT(util::HexLong(0x1A2B3C, params), Eq("0x1A2B3C"));
// Test lowercase
params.prefix = util::HexStringParams::Prefix::kNone;
params.uppercase = false;
EXPECT_THAT(util::HexLong(0x1A2B3C, params), Eq("1a2b3c"));
}
TEST(HexTest, HexLongLong) {
// Test basic long long conversion
EXPECT_THAT(util::HexLongLong(0x00000000), Eq("$00000000"));
EXPECT_THAT(util::HexLongLong(0xFFFFFFFF), Eq("$FFFFFFFF"));
EXPECT_THAT(util::HexLongLong(0x1A2B3C4D), Eq("$1A2B3C4D"));
// Test different prefixes
util::HexStringParams params;
params.prefix = util::HexStringParams::Prefix::kNone;
EXPECT_THAT(util::HexLongLong(0x1A2B3C4D, params), Eq("1A2B3C4D"));
params.prefix = util::HexStringParams::Prefix::kHash;
EXPECT_THAT(util::HexLongLong(0x1A2B3C4D, params), Eq("#1A2B3C4D"));
params.prefix = util::HexStringParams::Prefix::k0x;
EXPECT_THAT(util::HexLongLong(0x1A2B3C4D, params), Eq("0x1A2B3C4D"));
// Test lowercase
params.prefix = util::HexStringParams::Prefix::kNone;
params.uppercase = false;
EXPECT_THAT(util::HexLongLong(0x1A2B3C4D, params), Eq("1a2b3c4d"));
}
} // namespace test
} // namespace yaze