aboutsummaryrefslogtreecommitdiffstats
path: root/src/atrac3denc_ut.cpp
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2017-08-06 00:28:18 +0300
committerDaniil Cherednik <dan.cherednik@gmail.com>2017-10-17 01:08:53 +0300
commit43e508b0b607054d2a720e8d9c3a11947d6f798d (patch)
treec9d70e031a21ec9dcf45ab1d18727f267724c30f /src/atrac3denc_ut.cpp
parentfcb5986d9d21d923db2480be5089168fc1d1fcd2 (diff)
downloadatracdenc-43e508b0b607054d2a720e8d9c3a11947d6f798d.tar.gz
Simplest gain control - scale first part of frame if the attack transient was detected
Diffstat (limited to 'src/atrac3denc_ut.cpp')
-rw-r--r--src/atrac3denc_ut.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/atrac3denc_ut.cpp b/src/atrac3denc_ut.cpp
index a80db5a..7813210 100644
--- a/src/atrac3denc_ut.cpp
+++ b/src/atrac3denc_ut.cpp
@@ -345,6 +345,38 @@ TEST(TAtrac3MDCT, TAtrac3MDCTSignalWithGainCompensationAndManualTransient) {
}
}
+TEST(AtracGainControl, RelToIdxTest) {
+
+ EXPECT_EQ(4, RelationToIdx(1));
+ EXPECT_EQ(4, RelationToIdx(1.8));
+ EXPECT_EQ(3, RelationToIdx(2));
+ EXPECT_EQ(3, RelationToIdx(3));
+ EXPECT_EQ(3, RelationToIdx(3.5));
+ EXPECT_EQ(2, RelationToIdx(4));
+ EXPECT_EQ(2, RelationToIdx(7));
+ EXPECT_EQ(1, RelationToIdx(8));
+ EXPECT_EQ(1, RelationToIdx(15));
+ EXPECT_EQ(0, RelationToIdx(16));
+ EXPECT_EQ(0, RelationToIdx(9999));
+
+ EXPECT_EQ(4, RelationToIdx(0.8));
+ EXPECT_EQ(5, RelationToIdx(0.5));
+ EXPECT_EQ(5, RelationToIdx(0.4));
+ EXPECT_EQ(5, RelationToIdx(0.3));
+ EXPECT_EQ(6, RelationToIdx(0.25));
+ EXPECT_EQ(6, RelationToIdx(0.126));
+ EXPECT_EQ(7, RelationToIdx(0.125));
+ EXPECT_EQ(7, RelationToIdx(0.0626));
+ EXPECT_EQ(8, RelationToIdx(0.0625));
+ EXPECT_EQ(8, RelationToIdx(0.03126));
+ EXPECT_EQ(9, RelationToIdx(0.03125));
+ EXPECT_EQ(9, RelationToIdx(0.015626));
+ EXPECT_EQ(10, RelationToIdx(0.015625));
+ EXPECT_EQ(13, RelationToIdx(0.001953125));
+ EXPECT_EQ(15, RelationToIdx(0.00048828125));
+ EXPECT_EQ(15, RelationToIdx(0.00000048828125));
+}
+
TEST(TAtrac3MDCT, TAtrac3MDCTWindow) {
TWindowTest test;
test.RunTest();