• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "iamf/cli/codec/decoder_base.h"
2 
3 #include <cstdint>
4 #include <vector>
5 
6 #include "absl/status/status.h"
7 #include "gtest/gtest.h"
8 
9 namespace iamf_tools {
10 namespace {
11 
12 // A mock to be able to test the abstract base class.
13 class MockDecoder : public DecoderBase {
14  public:
MockDecoder(int num_channels,int num_samples_per_channel)15   MockDecoder(int num_channels, int num_samples_per_channel)
16       : DecoderBase(num_channels, num_samples_per_channel) {}
17 
18   // Helpers to expose the values for expectations.
GetNumChannels() const19   int GetNumChannels() const { return num_channels_; }
GetNumSamplesPerChannel() const20   int GetNumSamplesPerChannel() const { return num_samples_per_channel_; }
21 
22   // Unimplemented implementations for base class pure virtual methods
23   // that we won't test.
Initialize()24   absl::Status Initialize() override {
25     return absl::UnimplementedError("Not implemented");
26   }
27 
DecodeAudioFrame(const std::vector<uint8_t> & encoded_frame)28   absl::Status DecodeAudioFrame(
29       const std::vector<uint8_t>& encoded_frame) override {
30     return absl::UnimplementedError("Not implemented");
31   }
32 };
33 
TEST(DecoderBaseTest,TestConstruction)34 TEST(DecoderBaseTest, TestConstruction) {
35   const int kExpectedNumChannels = 9;
36   const int kExpectedNumSamplesPerChannel = 5400;
37   MockDecoder decoder(kExpectedNumChannels, kExpectedNumSamplesPerChannel);
38   EXPECT_EQ(decoder.GetNumChannels(), kExpectedNumChannels);
39   EXPECT_EQ(decoder.GetNumSamplesPerChannel(), kExpectedNumSamplesPerChannel);
40 }
41 
42 }  // namespace
43 }  // namespace iamf_tools
44