1515#include < memory>
1616#include < vector>
1717
18- #include " absl/status/status_matchers.h"
1918#include " gmock/gmock.h"
2019#include " gtest/gtest.h"
2120#include " iamf/cli/proto/obu_header.pb.h"
21+ #include " iamf/cli/proto/param_definitions.pb.h"
2222#include " iamf/cli/proto/parameter_data.pb.h"
2323#include " iamf/common/leb_generator.h"
2424#include " iamf/obu/demixing_info_parameter_data.h"
@@ -30,6 +30,51 @@ namespace iamf_tools {
3030namespace {
3131
3232using ::absl_testing::IsOk;
33+ using ::testing::FloatNear;
34+ using ::testing::Not;
35+
36+ TEST (GetQ7_8FromProto, Q7_8) {
37+ iamf_tools_cli_proto::QFormatOrFloatingPoint q_format_or_floating_point;
38+ q_format_or_floating_point.set_q7_dot8 (256 );
39+ auto converted = ProtoToQFormatOrFloatingPoint (q_format_or_floating_point);
40+
41+ ASSERT_THAT (converted, IsOk ());
42+ EXPECT_EQ (converted->GetQ7_8 (), 256 );
43+ }
44+
45+ TEST (GetQ7_8FromProto, Float) {
46+ iamf_tools_cli_proto::QFormatOrFloatingPoint q_format_or_floating_point;
47+ q_format_or_floating_point.set_floating_point (1.5 );
48+ auto converted = ProtoToQFormatOrFloatingPoint (q_format_or_floating_point);
49+
50+ ASSERT_THAT (converted, IsOk ());
51+ EXPECT_THAT (converted->GetFloatingPoint (), FloatNear (1.5 , 1e-6 ));
52+ }
53+
54+ TEST (GetQ7_8FromProto, NeitherSetDefaultsToZero) {
55+ iamf_tools_cli_proto::QFormatOrFloatingPoint q_format_or_floating_point;
56+
57+ auto converted = ProtoToQFormatOrFloatingPoint (q_format_or_floating_point);
58+
59+ ASSERT_THAT (converted, IsOk ());
60+ EXPECT_EQ (converted->GetQ7_8 (), 0 );
61+ }
62+
63+ TEST (GetQ7_8FromProto, Q7_8OutOfRangeReturnsError) {
64+ iamf_tools_cli_proto::QFormatOrFloatingPoint q_format_or_floating_point;
65+ q_format_or_floating_point.set_q7_dot8 (65536 );
66+
67+ EXPECT_THAT (ProtoToQFormatOrFloatingPoint (q_format_or_floating_point),
68+ Not (IsOk ()));
69+ }
70+
71+ TEST (GetQ7_8FromProto, FloatOutOfRangeReturnsError) {
72+ iamf_tools_cli_proto::QFormatOrFloatingPoint q_format_or_floating_point;
73+ q_format_or_floating_point.set_floating_point (1000.0 );
74+
75+ EXPECT_THAT (ProtoToQFormatOrFloatingPoint (q_format_or_floating_point),
76+ Not (IsOk ()));
77+ }
3378
3479TEST (CopyDemixingInfoParameterData, Basic) {
3580 iamf_tools_cli_proto::DemixingInfoParameterData
0 commit comments