⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_slice.cpp

📁 ac3的解码程序
💻 CPP
字号:
#include "source/generator.h"
#include "filters/slice.h"
#include "../../suite.h"

static const Speakers spk = Speakers(FORMAT_LINEAR, MODE_STEREO, 48000);
static const size_t noise_size = 64 * 1024;
static const int seed = 945098;

///////////////////////////////////////////////////////////////////////////////

TEST(slice, "SliceFilter test")

  int chunk_size = noise_size / 11;
  Chunk chunk;
  NoiseGen noise1;
  NoiseGen noise2;
  SliceFilter slice;

  /////////////////////////////////////////////////////////
  // Slice is equal to the stream

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, noise_size, chunk_size);
  slice.init(0, noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Slice is shorter than the stream

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, noise_size / 2, chunk_size);
  slice.init(0, noise_size / 2);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Slice is longer than the stream

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, noise_size, chunk_size);
  slice.init(0, 2 * noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut the end of the stream

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, noise_size, chunk_size);
  noise2.get_chunk(&chunk);
  slice.init(chunk_size, noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut the middle of the stream

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, noise_size / 2, chunk_size);
  noise2.get_chunk(&chunk);
  slice.init(chunk_size, noise_size / 2);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut after the end of the stream 1

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, noise_size, chunk_size);
  noise2.get_chunk(&chunk);
  slice.init(chunk_size, 2 * noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut after the end of the stream 2

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, 0, chunk_size);
  slice.init(2 * noise_size, 4 * noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut nothing at the beginning

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, 0, chunk_size);
  slice.init(0, 0);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut nothing in the middle

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, 0, chunk_size);
  slice.init(noise_size / 2, noise_size / 2);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut nothing at the end

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, 0, chunk_size);
  slice.init(noise_size, noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

  /////////////////////////////////////////////////////////
  // Cut nothing after the end

  noise1.init(spk, seed, noise_size, chunk_size);
  noise2.init(spk, seed, 0, chunk_size);
  slice.init(2 * noise_size, 2 * noise_size);

  CHECK(compare(log, &noise1, &slice, &noise2, 0) == 0);

TEST_END(slice);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -