fix(palette): align ROM backing and tests

This commit is contained in:
scawful
2025-12-22 14:55:31 -05:00
parent c8ec329f14
commit 26ce12cd6f
6 changed files with 42 additions and 24 deletions

View File

@@ -170,8 +170,8 @@ TEST_F(PaletteEditorSaveTest, SnesColorFormat_RoundTrip) {
// Convert to SnesColor and back
gfx::SnesColor color(test_snes);
// Get RGB representation
auto rgb = color.rgb();
// Get RGB representation in 0-255 range
auto rgb = color.rom_color();
// Create new color from RGB
gfx::SnesColor reconstructed(rgb);
@@ -284,19 +284,11 @@ TEST_F(PaletteEditorSaveTest, PaletteManager_SaveAllToRom) {
}
// Try to modify a color through PaletteManager
// Access overworld main palettes through game_data
auto* ow_main = game_data_->palette_groups.overworld_main.mutable_palette(0);
if (!ow_main || ow_main->size() == 0) {
GTEST_SKIP() << "No overworld main palette available";
}
// Record original color
gfx::SnesColor original_color = (*ow_main)[0];
gfx::SnesColor original_color = pm.GetColor("ow_main", 0, 0);
// Modify the color
uint16_t new_snes_value = (original_color.snes() + 0x0842) & 0x7FFF;
(*ow_main)[0] = gfx::SnesColor(new_snes_value);
(*ow_main)[0].set_modified(true);
ASSERT_OK(pm.SetColor("ow_main", 0, 0, gfx::SnesColor(new_snes_value)));
// Save through PaletteManager
auto save_result = pm.SaveAllToRom();
@@ -436,4 +428,3 @@ TEST_F(PaletteEditorSaveTest, RoundTrip_NoModification) {
} // namespace test
} // namespace yaze

View File

@@ -14,9 +14,8 @@ namespace {
class PaletteManagerTest : public ::testing::Test {
protected:
void SetUp() override {
// PaletteManager is a singleton, so we need to reset it between tests
// Note: In a real scenario, we'd need a way to reset the singleton
// For now, we'll work with the existing instance
// PaletteManager is a singleton, so reset it for test isolation
PaletteManager::Get().ResetForTesting();
}
void TearDown() override {

View File

@@ -31,17 +31,17 @@ TEST(SnesColorConversionTest, DefaultConstructor) {
EXPECT_EQ(color.rgb().x, 0.0f);
EXPECT_EQ(color.rgb().y, 0.0f);
EXPECT_EQ(color.rgb().z, 0.0f);
EXPECT_EQ(color.rgb().w, 0.0f);
EXPECT_EQ(color.rgb().w, 255.0f);
EXPECT_EQ(color.snes(), 0);
}
TEST(SnesColorConversionTest, RGBConstructor) {
ImVec4 rgb(1.0f, 0.5f, 0.25f, 1.0f);
yaze::gfx::SnesColor color(rgb);
EXPECT_EQ(color.rgb().x, rgb.x);
EXPECT_EQ(color.rgb().y, rgb.y);
EXPECT_EQ(color.rgb().z, rgb.z);
EXPECT_EQ(color.rgb().w, rgb.w);
EXPECT_EQ(color.rgb().x, 255.0f);
EXPECT_EQ(color.rgb().y, 127.5f);
EXPECT_EQ(color.rgb().z, 63.75f);
EXPECT_EQ(color.rgb().w, 255.0f);
}
TEST(SnesColorConversionTest, SNESConstructor) {