Files
oak-editor/tests/gtest/common_decibel_test.cpp
T
Mike-Solar c57608b8f8 test: expand gtest coverage for common/core utilities
Add unit tests for:
- CommandLineParser, Debug handler, Decibel, Digit, JobTime, FFmpegUtils
- Core StringUtils, Timecode, TimeRange, Bezier, Color
- Extend Frame tests to cover pixel access, interlace, conversion

Coverage improvements (app + ext/core):
- commandlineparser.cpp: 0% -> 93%
- debug.cpp: 0% -> 85%
- decibel.h: 25% -> 88%
- digit.h: 0% -> 100%
- ffmpegutils.cpp: 29% -> 90%
- frame.cpp: 53% -> 97%
- bezier.cpp: 16% -> 98%
- color.cpp: 13% -> 71%
- Overall line coverage: 17% -> 19%
2026-07-13 10:19:30 +08:00

53 lines
1.2 KiB
C++

#include <gtest/gtest.h>
#include "common/decibel.h"
TEST(CommonDecibel, FromLinearZeroReturnsMinimum)
{
EXPECT_DOUBLE_EQ(olive::Decibel::fromLinear(0.0), olive::Decibel::MINIMUM);
}
TEST(CommonDecibel, FromLinearOneReturnsZero)
{
EXPECT_DOUBLE_EQ(olive::Decibel::fromLinear(1.0), 0.0);
}
TEST(CommonDecibel, FromLinearTenReturnsTwenty)
{
EXPECT_DOUBLE_EQ(olive::Decibel::fromLinear(10.0), 20.0);
}
TEST(CommonDecibel, ToLinearZeroReturnsOne)
{
EXPECT_DOUBLE_EQ(olive::Decibel::toLinear(0.0), 1.0);
}
TEST(CommonDecibel, ToLinearMinimumReturnsZero)
{
EXPECT_DOUBLE_EQ(olive::Decibel::toLinear(olive::Decibel::MINIMUM), 0.0);
}
TEST(CommonDecibel, ToLinearTwentyReturnsTen)
{
EXPECT_DOUBLE_EQ(olive::Decibel::toLinear(20.0), 10.0);
}
TEST(CommonDecibel, FromLogarithmicAtEdges)
{
EXPECT_DOUBLE_EQ(olive::Decibel::fromLogarithmic(0.0),
olive::Decibel::MINIMUM);
EXPECT_DOUBLE_EQ(olive::Decibel::fromLogarithmic(1.0), 0.0);
}
TEST(CommonDecibel, ToLogarithmicAtEdges)
{
EXPECT_DOUBLE_EQ(olive::Decibel::toLogarithmic(0.0), 1.0);
}
TEST(CommonDecibel, LinearLogarithmicRoundTrip)
{
EXPECT_NEAR(olive::Decibel::LogarithmicToLinear(
olive::Decibel::LinearToLogarithmic(0.5)),
0.5, 1e-6);
}