Skip to content

Commit

Permalink
Add a test suite.
Browse files Browse the repository at this point in the history
Fixes #29.
  • Loading branch information
foo86 committed May 15, 2015
1 parent bc08f9e commit 37d8e68
Show file tree
Hide file tree
Showing 7 changed files with 335 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "test/samples"]
path = test/samples
url = https://github.com/foo86/dcadec-samples.git
12 changes: 12 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ endif
OUT_DEC ?= dcadec$(EXESUF)
OUT_CUT ?= dcacut$(EXESUF)

OUT_DEV ?= test/stddev$(EXESUF)
SRC_DEV ?= test/stddev.c
CFLAGS_DEV ?= -O2 -Wall -Wextra

SRC_LIB = \
libdcadec/bitstream.c \
libdcadec/core_decoder.c \
Expand Down Expand Up @@ -135,11 +139,19 @@ $(OUT_CUT): $(OBJ_CUT) $(OUT_LIB)

endif

$(OUT_DEV): $(SRC_DEV)
$(CC) $(LDFLAGS) -o $@ $(CFLAGS_DEV) $< $(LIBS)

check: $(OUT_DEC) $(OUT_DEV)
cd test && ./test.sh

clean:
$(RM) $(OUT_LIB) $(OBJ_LIB) $(DEP_LIB) $(EXTRA_LIB)
$(RM) $(OUT_DEC) $(OBJ_DEC) $(DEP_DEC)
$(RM) $(OUT_CUT) $(OBJ_CUT) $(DEP_CUT)
$(RM) dcadec.pc
$(RM) $(OUT_DEV)
$(RM) -r test/decoded

.PHONY: dcadec.pc
dcadec.pc: dcadec.pc.in
Expand Down
109 changes: 109 additions & 0 deletions test/checksum.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
9415e0d4c7cd58ee793d7b2bfae34e4de411181c *decoded/dmix_0/core_51_24_48_768_0.wav
de10f73b35c2db915f69c46ddc95468c25510bdf *decoded/dmix_0/core_51_24_48_768_1.wav
aa95c8fac1876cce0750261b26ad231a0249b7b0 *decoded/dmix_0/x96_51_24_96_1509.wav
684e654a5b3bb3be9e34bfc32af14bac756bb83e *decoded/dmix_0/x96_xch_61_24_96_3840.wav
fa27196ba43bd24efd319f96fd045f7e5ca0b324 *decoded/dmix_0/x96_xxch_71_24_96_3840.wav
b64efecbd7b2df7b5edb3dbda7f2b3f715c06eef *decoded/dmix_0/xbr_51_24_48_3840.wav
346e21a2f26f798808709e4153ea68b6207e377c *decoded/dmix_0/xbr_xch_61_24_48_3840.wav
eabf815257bba4388e46c3330ee8456d793bb44d *decoded/dmix_0/xbr_xxch_71_24_48_3840.wav
05529c0991df6e55811b582b263118a62f2ff1e7 *decoded/dmix_0/xch_61_24_48_768.wav
d7f7cf50d55ce32aea4121549973db16cd5d5bd0 *decoded/dmix_0/xll_51_16_192_768_0.wav
d7f7cf50d55ce32aea4121549973db16cd5d5bd0 *decoded/dmix_0/xll_51_16_192_768_1.wav
15be906b3c57c90304702eab2cc83650e553da1d *decoded/dmix_0/xll_51_24_48_768.wav
96d31af60dc3e8b5c568737ff697730b7c549ea0 *decoded/dmix_0/xll_51_24_48_none.wav
431446b087a74257d338c290bd31a40e6e54e060 *decoded/dmix_0/xll_71_24_48_768_0.wav
431446b087a74257d338c290bd31a40e6e54e060 *decoded/dmix_0/xll_71_24_48_768_1.wav
045f5972843c5e442678d742fe1e6d3af1d062f9 *decoded/dmix_0/xll_71_24_96_768.wav
e3cbf8670dd14208c34a66cae90c45c2eb20d6bb *decoded/dmix_0/xll_xch_61_24_48_768.wav
009524ee6202a4f8e8daa6a4033a8e1c4909508d *decoded/dmix_0/xxch_71_24_48_2046.wav
9415e0d4c7cd58ee793d7b2bfae34e4de411181c *decoded/dmix_2/core_51_24_48_768_0.wav
ecd0b8b3a6a79691be3ad3da904e7e9c3b1f313d *decoded/dmix_2/core_51_24_48_768_1.wav
aa95c8fac1876cce0750261b26ad231a0249b7b0 *decoded/dmix_2/x96_51_24_96_1509.wav
5cde940a0570fa7c4c941c83d64c7dad2d48161f *decoded/dmix_2/x96_xch_61_24_96_3840.wav
d8c6151be5818232376617e1c206429343cebdde *decoded/dmix_2/x96_xxch_71_24_96_3840.wav
b64efecbd7b2df7b5edb3dbda7f2b3f715c06eef *decoded/dmix_2/xbr_51_24_48_3840.wav
54fcc9441c3670b43d2df2e4018f5be4d481c9db *decoded/dmix_2/xbr_xch_61_24_48_3840.wav
6e2e95df72687c818164d84ddc20f41a90935cdc *decoded/dmix_2/xbr_xxch_71_24_48_3840.wav
55d2dd0ae8501134963655e149ee7420859d6996 *decoded/dmix_2/xch_61_24_48_768.wav
d7f7cf50d55ce32aea4121549973db16cd5d5bd0 *decoded/dmix_2/xll_51_16_192_768_0.wav
9b5e7b8109cadcccec7b98784856cdb87b787ca0 *decoded/dmix_2/xll_51_16_192_768_1.wav
47043676e438e3727f398ff6f0b2b46ec3ab02f6 *decoded/dmix_2/xll_51_24_48_768.wav
96d31af60dc3e8b5c568737ff697730b7c549ea0 *decoded/dmix_2/xll_51_24_48_none.wav
1c0c7ad09c2d335bd3dae9f8b5b6bb803f211abe *decoded/dmix_2/xll_71_24_48_768_0.wav
4b701b2b906a1af079774b23052e96fb8ee1a5fc *decoded/dmix_2/xll_71_24_48_768_1.wav
359ea5c7b8abcbde36c469afa9b364ba4dc59f9f *decoded/dmix_2/xll_71_24_96_768.wav
bf59eebc557f8240fe9545ecc8fddd4ff52c3fb6 *decoded/dmix_2/xll_xch_61_24_48_768.wav
fb4040a45e51de1bde777b1c5e1116462e9d9aba *decoded/dmix_2/xxch_71_24_48_2046.wav
9415e0d4c7cd58ee793d7b2bfae34e4de411181c *decoded/dmix_6/core_51_24_48_768_0.wav
de10f73b35c2db915f69c46ddc95468c25510bdf *decoded/dmix_6/core_51_24_48_768_1.wav
aa95c8fac1876cce0750261b26ad231a0249b7b0 *decoded/dmix_6/x96_51_24_96_1509.wav
5cde940a0570fa7c4c941c83d64c7dad2d48161f *decoded/dmix_6/x96_xch_61_24_96_3840.wav
d8c6151be5818232376617e1c206429343cebdde *decoded/dmix_6/x96_xxch_71_24_96_3840.wav
b64efecbd7b2df7b5edb3dbda7f2b3f715c06eef *decoded/dmix_6/xbr_51_24_48_3840.wav
54fcc9441c3670b43d2df2e4018f5be4d481c9db *decoded/dmix_6/xbr_xch_61_24_48_3840.wav
6e2e95df72687c818164d84ddc20f41a90935cdc *decoded/dmix_6/xbr_xxch_71_24_48_3840.wav
55d2dd0ae8501134963655e149ee7420859d6996 *decoded/dmix_6/xch_61_24_48_768.wav
d7f7cf50d55ce32aea4121549973db16cd5d5bd0 *decoded/dmix_6/xll_51_16_192_768_0.wav
d7f7cf50d55ce32aea4121549973db16cd5d5bd0 *decoded/dmix_6/xll_51_16_192_768_1.wav
15be906b3c57c90304702eab2cc83650e553da1d *decoded/dmix_6/xll_51_24_48_768.wav
96d31af60dc3e8b5c568737ff697730b7c549ea0 *decoded/dmix_6/xll_51_24_48_none.wav
1c0c7ad09c2d335bd3dae9f8b5b6bb803f211abe *decoded/dmix_6/xll_71_24_48_768_0.wav
179e28454bc831cbba30369357dfe6778b4cb1c5 *decoded/dmix_6/xll_71_24_48_768_1.wav
359ea5c7b8abcbde36c469afa9b364ba4dc59f9f *decoded/dmix_6/xll_71_24_96_768.wav
bf59eebc557f8240fe9545ecc8fddd4ff52c3fb6 *decoded/dmix_6/xll_xch_61_24_48_768.wav
fb4040a45e51de1bde777b1c5e1116462e9d9aba *decoded/dmix_6/xxch_71_24_48_2046.wav
f9567e7e8926a0d1247d551dfdee06922953fda2 *decoded/mono/xll_51_16_192_768_0_C.wav
b338184ad40c7bfab8811ca465ee333d5da818ff *decoded/mono/xll_51_16_192_768_0_L.wav
d5e0325811b8ca44093b33104fa390300068f1ec *decoded/mono/xll_51_16_192_768_0_LFE.wav
63f9cb37032d724d30bfa4224e6dcd5ce76ee926 *decoded/mono/xll_51_16_192_768_0_Ls.wav
b338184ad40c7bfab8811ca465ee333d5da818ff *decoded/mono/xll_51_16_192_768_0_R.wav
63f9cb37032d724d30bfa4224e6dcd5ce76ee926 *decoded/mono/xll_51_16_192_768_0_Rs.wav
f9567e7e8926a0d1247d551dfdee06922953fda2 *decoded/mono/xll_51_16_192_768_1_C.wav
b338184ad40c7bfab8811ca465ee333d5da818ff *decoded/mono/xll_51_16_192_768_1_L.wav
d5e0325811b8ca44093b33104fa390300068f1ec *decoded/mono/xll_51_16_192_768_1_LFE.wav
63f9cb37032d724d30bfa4224e6dcd5ce76ee926 *decoded/mono/xll_51_16_192_768_1_Ls.wav
b338184ad40c7bfab8811ca465ee333d5da818ff *decoded/mono/xll_51_16_192_768_1_R.wav
63f9cb37032d724d30bfa4224e6dcd5ce76ee926 *decoded/mono/xll_51_16_192_768_1_Rs.wav
bbbf7fd9a60805e384c6cc3c95bd48a2b74ed5e3 *decoded/mono/xll_51_24_48_768_C.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_51_24_48_768_L.wav
d7fdbd9e826aa3de8aa4ee2156068369a3bbbf9a *decoded/mono/xll_51_24_48_768_LFE.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_51_24_48_768_Ls.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_51_24_48_768_R.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_51_24_48_768_Rs.wav
241d6ed12c09bd02e89d9c2eddb8daac5e4688ba *decoded/mono/xll_51_24_48_none_C.wav
5eeff9f6c2993ed8bbea174659133e8b0fb2eb2d *decoded/mono/xll_51_24_48_none_L.wav
9bb05d6de708d22837128168ec951b8a91cedfa8 *decoded/mono/xll_51_24_48_none_LFE.wav
5a0cb7df9dee257d81d7c08729bc2c5830c7807d *decoded/mono/xll_51_24_48_none_Ls.wav
b54ee1a50ddfa843860e7c6e8a4643261e6babea *decoded/mono/xll_51_24_48_none_R.wav
5d89b3afc78c63ca3dec1ea77b2a06be0d8ce4fa *decoded/mono/xll_51_24_48_none_Rs.wav
bbbf7fd9a60805e384c6cc3c95bd48a2b74ed5e3 *decoded/mono/xll_71_24_48_768_0_C.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_71_24_48_768_0_L.wav
d7fdbd9e826aa3de8aa4ee2156068369a3bbbf9a *decoded/mono/xll_71_24_48_768_0_LFE.wav
af2edeaf1bb4b7992d4161615e6bc30be8277407 *decoded/mono/xll_71_24_48_768_0_Lsr.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_71_24_48_768_0_Lss.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_71_24_48_768_0_R.wav
af2edeaf1bb4b7992d4161615e6bc30be8277407 *decoded/mono/xll_71_24_48_768_0_Rsr.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_71_24_48_768_0_Rss.wav
bbbf7fd9a60805e384c6cc3c95bd48a2b74ed5e3 *decoded/mono/xll_71_24_48_768_1_C.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_71_24_48_768_1_L.wav
d7fdbd9e826aa3de8aa4ee2156068369a3bbbf9a *decoded/mono/xll_71_24_48_768_1_LFE.wav
af2edeaf1bb4b7992d4161615e6bc30be8277407 *decoded/mono/xll_71_24_48_768_1_Lsr.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_71_24_48_768_1_Lss.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_71_24_48_768_1_R.wav
af2edeaf1bb4b7992d4161615e6bc30be8277407 *decoded/mono/xll_71_24_48_768_1_Rsr.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_71_24_48_768_1_Rss.wav
5f6766f79859a43e86d5084fd141280a2da0e2b5 *decoded/mono/xll_71_24_96_768_C.wav
e619c5dbb080298e4ec338766fc9082a748ced9e *decoded/mono/xll_71_24_96_768_L.wav
62b25ecaafc86d4ff05cf7830e9ba4cca94c96e1 *decoded/mono/xll_71_24_96_768_LFE.wav
8d538275a2a8cc1d94dd28a13ffbe5ecab01e31d *decoded/mono/xll_71_24_96_768_Lsr.wav
e8c1bfdfa4917b45045b8a937e24d6c3851b4f3c *decoded/mono/xll_71_24_96_768_Lss.wav
e619c5dbb080298e4ec338766fc9082a748ced9e *decoded/mono/xll_71_24_96_768_R.wav
8d538275a2a8cc1d94dd28a13ffbe5ecab01e31d *decoded/mono/xll_71_24_96_768_Rsr.wav
e8c1bfdfa4917b45045b8a937e24d6c3851b4f3c *decoded/mono/xll_71_24_96_768_Rss.wav
bbbf7fd9a60805e384c6cc3c95bd48a2b74ed5e3 *decoded/mono/xll_xch_61_24_48_768_C.wav
af2edeaf1bb4b7992d4161615e6bc30be8277407 *decoded/mono/xll_xch_61_24_48_768_Cs.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_xch_61_24_48_768_L.wav
d7fdbd9e826aa3de8aa4ee2156068369a3bbbf9a *decoded/mono/xll_xch_61_24_48_768_LFE.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_xch_61_24_48_768_Ls.wav
1dd4af9b5a3bb56267d73a05a6d6276b9096c672 *decoded/mono/xll_xch_61_24_48_768_R.wav
2555b7da3430f24bc28512596da48dc24be65f95 *decoded/mono/xll_xch_61_24_48_768_Rs.wav
1 change: 1 addition & 0 deletions test/samples
Submodule samples added at fa7dcf
111 changes: 111 additions & 0 deletions test/stddev.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/*
* This file is part of libdcadec.
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <math.h>

#define BUF 3000
#define HDR 44

int main(int argc, char **argv)
{
uint8_t buf1[BUF], buf2[BUF], *p1, *p2;
int64_t acc = 0, cnt = 0;
size_t r1, r2, i;
double ref = 0.0;

if (argc != 4)
goto fail;

if (strcmp(argv[3], "?")) {
char *p;
ref = strtod(argv[3], &p);
if (*p || p == argv[3])
goto fail;
}

FILE *fp1 = fopen(argv[1], "rb");
FILE *fp2 = fopen(argv[2], "rb");
if (!fp1 || !fp2)
goto fail;

if (fread(buf1, HDR, 1, fp1) != 1 || fread(buf2, HDR, 1, fp2) != 1)
goto fail;

if (memcmp(buf1, buf2, HDR) || memcmp(buf1, "RIFF", 4))
goto fail;

int bps;
switch (buf1[34] | (buf1[35] << 8)) {
case 16:
bps = 2;
break;
case 24:
bps = 3;
break;
default:
goto fail;
}

do {
r1 = fread(buf1, 1, BUF, fp1);
r2 = fread(buf2, 1, BUF, fp2);
if (r1 != r2 || r1 % bps)
goto fail;

for (i = 0, p1 = buf1, p2 = buf2; i < r1 / bps; i++, p1 += bps, p2 += bps) {
int64_t d;

if (bps == 3) {
int32_t v1 = ((p1[0] << 8) | (p1[1] << 16) | (p1[2] << 24)) >> 8;
int32_t v2 = ((p2[0] << 8) | (p2[1] << 16) | (p2[2] << 24)) >> 8;
d = v1 - v2;
} else {
int16_t v1 = p1[0] | (p1[1] << 8);
int16_t v2 = p2[0] | (p2[1] << 8);
d = v1 - v2;
}

acc += d * d;
}

cnt += i;
} while (r1 == BUF);

if (!cnt)
goto fail;

double var = (double)acc / cnt;
double dev = sqrt(var);
if (strcmp(argv[3], "?")) {
if (fabs(dev - ref) > 0.1)
goto fail;
printf("%s: OK\n", argv[1]);
} else {
printf("%s: %f\n", argv[1], dev);
}

return 0;

fail:
printf("%s: FAILED\n", argc > 1 ? argv[1] : "???");
return 1;
}
69 changes: 69 additions & 0 deletions test/stddev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
decoded/mono/core_51_24_48_768_0_C.wav: 2.282641
decoded/mono/core_51_24_48_768_0_L.wav: 1.783442
decoded/mono/core_51_24_48_768_0_LFE.wav: 0.000000
decoded/mono/core_51_24_48_768_0_Ls.wav: 1.780153
decoded/mono/core_51_24_48_768_0_R.wav: 1.737961
decoded/mono/core_51_24_48_768_0_Rs.wav: 1.761957
decoded/mono/core_51_24_48_768_1_C.wav: 2.258123
decoded/mono/core_51_24_48_768_1_L.wav: 1.828726
decoded/mono/core_51_24_48_768_1_LFE.wav: 0.000000
decoded/mono/core_51_24_48_768_1_Ls.wav: 1.727110
decoded/mono/core_51_24_48_768_1_R.wav: 1.800879
decoded/mono/core_51_24_48_768_1_Rs.wav: 1.710206
decoded/mono/x96_51_24_96_1509_C.wav: 3.372648
decoded/mono/x96_51_24_96_1509_L.wav: 2.959649
decoded/mono/x96_51_24_96_1509_LFE.wav: 0.549103
decoded/mono/x96_51_24_96_1509_Ls.wav: 3.121600
decoded/mono/x96_51_24_96_1509_R.wav: 2.959649
decoded/mono/x96_51_24_96_1509_Rs.wav: 3.053878
decoded/mono/x96_xch_61_24_96_3840_C.wav: 3.550590
decoded/mono/x96_xch_61_24_96_3840_Cs.wav: 2.152851
decoded/mono/x96_xch_61_24_96_3840_L.wav: 3.175529
decoded/mono/x96_xch_61_24_96_3840_LFE.wav: 0.549103
decoded/mono/x96_xch_61_24_96_3840_Ls.wav: 3.565754
decoded/mono/x96_xch_61_24_96_3840_R.wav: 3.175529
decoded/mono/x96_xch_61_24_96_3840_Rs.wav: 3.546978
decoded/mono/x96_xxch_71_24_96_3840_C.wav: 3.431600
decoded/mono/x96_xxch_71_24_96_3840_L.wav: 3.354502
decoded/mono/x96_xxch_71_24_96_3840_LFE.wav: 0.875697
decoded/mono/x96_xxch_71_24_96_3840_Lsr.wav: 2.181241
decoded/mono/x96_xxch_71_24_96_3840_Lss.wav: 4.218345
decoded/mono/x96_xxch_71_24_96_3840_R.wav: 3.485461
decoded/mono/x96_xxch_71_24_96_3840_Rsr.wav: 2.048544
decoded/mono/x96_xxch_71_24_96_3840_Rss.wav: 3.940506
decoded/mono/xbr_51_24_48_3840_C.wav: 2.499609
decoded/mono/xbr_51_24_48_3840_L.wav: 1.944418
decoded/mono/xbr_51_24_48_3840_LFE.wav: 0.000000
decoded/mono/xbr_51_24_48_3840_Ls.wav: 2.080297
decoded/mono/xbr_51_24_48_3840_R.wav: 1.950060
decoded/mono/xbr_51_24_48_3840_Rs.wav: 2.005242
decoded/mono/xbr_xch_61_24_48_3840_C.wav: 2.161339
decoded/mono/xbr_xch_61_24_48_3840_Cs.wav: 1.422133
decoded/mono/xbr_xch_61_24_48_3840_L.wav: 1.758212
decoded/mono/xbr_xch_61_24_48_3840_LFE.wav: 0.000000
decoded/mono/xbr_xch_61_24_48_3840_Ls.wav: 2.442103
decoded/mono/xbr_xch_61_24_48_3840_R.wav: 1.807914
decoded/mono/xbr_xch_61_24_48_3840_Rs.wav: 2.365627
decoded/mono/xbr_xxch_71_24_48_3840_C.wav: 2.798402
decoded/mono/xbr_xxch_71_24_48_3840_L.wav: 2.057641
decoded/mono/xbr_xxch_71_24_48_3840_LFE.wav: 0.000000
decoded/mono/xbr_xxch_71_24_48_3840_Lsr.wav: 1.502439
decoded/mono/xbr_xxch_71_24_48_3840_Lss.wav: 2.729415
decoded/mono/xbr_xxch_71_24_48_3840_R.wav: 2.024387
decoded/mono/xbr_xxch_71_24_48_3840_Rsr.wav: 1.485444
decoded/mono/xbr_xxch_71_24_48_3840_Rss.wav: 2.797617
decoded/mono/xch_61_24_48_768_C.wav: 2.111284
decoded/mono/xch_61_24_48_768_Cs.wav: 1.331705
decoded/mono/xch_61_24_48_768_L.wav: 1.850623
decoded/mono/xch_61_24_48_768_LFE.wav: 0.000000
decoded/mono/xch_61_24_48_768_Ls.wav: 1.999267
decoded/mono/xch_61_24_48_768_R.wav: 1.850623
decoded/mono/xch_61_24_48_768_Rs.wav: 2.159644
decoded/mono/xxch_71_24_48_2046_C.wav: 2.353314
decoded/mono/xxch_71_24_48_2046_L.wav: 1.915577
decoded/mono/xxch_71_24_48_2046_LFE.wav: 0.000000
decoded/mono/xxch_71_24_48_2046_Lsr.wav: 1.260309
decoded/mono/xxch_71_24_48_2046_Lss.wav: 2.389961
decoded/mono/xxch_71_24_48_2046_R.wav: 1.915577
decoded/mono/xxch_71_24_48_2046_Rsr.wav: 1.282964
decoded/mono/xxch_71_24_48_2046_Rss.wav: 2.442203
30 changes: 30 additions & 0 deletions test/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/sh

set -e

if [ ! -f samples/README ] ; then
echo "ERROR: Run 'git submodule update --init test/samples' first."
exit 1
fi

rm -rf decoded
mkdir -p decoded/dmix_0 decoded/dmix_2 decoded/dmix_6 decoded/mono
for i in samples/*.dtshd ; do
../dcadec -b -q $i decoded/dmix_0/$(basename $i .dtshd).wav
../dcadec -b -q -2 $i decoded/dmix_2/$(basename $i .dtshd).wav
../dcadec -b -q -6 $i decoded/dmix_6/$(basename $i .dtshd).wav
../dcadec -m -q $i decoded/mono/$(basename $i .dtshd)_%s.wav
done

if [ "$1" = "--update" ] ; then
sha1sum -b decoded/dmix_0/*.wav decoded/dmix_2/*.wav decoded/dmix_6/*.wav > checksum.txt
sha1sum -b samples/reference/xll_*.wav | sed 's|samples/reference|decoded/mono|' >> checksum.txt
for i in decoded/mono/core_*.wav decoded/mono/x96_*.wav decoded/mono/xbr_*.wav decoded/mono/xch_*.wav decoded/mono/xxch_*.wav ; do
./stddev $i samples/reference/$(basename $i) ?
done > stddev.txt
else
sha1sum -c checksum.txt
for i in decoded/mono/core_*.wav decoded/mono/x96_*.wav decoded/mono/xbr_*.wav decoded/mono/xch_*.wav decoded/mono/xxch_*.wav ; do
./stddev $i samples/reference/$(basename $i) $(grep -F $i stddev.txt | cut -d ' ' -f 2)
done
fi

0 comments on commit 37d8e68

Please sign in to comment.