Mercurial > hg > aimc
view branches/carfac_cpp/unittest/CARFAC_unittest.cpp @ 668:933cf18d9a59
Fourth revision of Alex Brandmeyer's C++ implementation. Fixed more style issues, changed AGC structures to vectors, replaced FloatArray2d with vector<FloatArray>, implemented first tests using GTest to verify coefficients and monaural output against Matlab values (stored in aimc/carfac/test_data/). To run tests, change the path stored in carfac_test.h in TEST_SRC_DIR. Added CARFAC_GenerateTestData to the Matlab branch, fixed stage indexing in CARFAC_Cross_Couple.m to reflect changes in AGCCoeffs and AGCState structs.
author | alexbrandmeyer |
---|---|
date | Wed, 22 May 2013 21:30:02 +0000 |
parents | d59c0d65624b |
children |
line wrap: on
line source
#include "CARFAC.h" #include "CARFAC_common.h" #include "gtest/gtest.h" /* * CARFACDesignTest - Test suite for constructor related tests. */ TEST(CARFACDesignTest, SampleRate) { CAR_parameters car_params = CAR_parameters(); IHC_parameters ihc_params = IHC_parameters(); AGC_parameters agc_params = AGC_parameters(); int arbitrary_number = 1347; CARFAC fooCarfac = CARFAC(arbitrary_number, &car_params, &ihc_params, &agc_params, 1); EXPECT_EQ(fooCarfac.fs_, arbitrary_number); } TEST(CARFACDesignTest, NumberOfEars) { CAR_parameters car_params = CAR_parameters(); IHC_parameters ihc_params = IHC_parameters(); AGC_parameters agc_params = AGC_parameters(); CARFAC fooCarfac = CARFAC(kDefaultFs, &car_params, &ihc_params, &agc_params, 2); EXPECT_EQ(fooCarfac.n_ears_, fooCarfac.ears_.size()); } TEST(CARFACDesignTest, MaxChannelsPerOctave) { CAR_parameters car_params = CAR_parameters(); IHC_parameters ihc_params = IHC_parameters(); AGC_parameters agc_params = AGC_parameters(); car_params.erb_per_step_ = 2*0.5; //not sure if this is the best way to design this test... I'm just doing _something_ here. float expected_max_channels_per_octave = 10.56/2; float tolerance = 0.25; CARFAC fooCarfac = CARFAC(kDefaultFs, &car_params, &ihc_params, &agc_params, 1); ASSERT_NEAR(fooCarfac.max_channels_per_octave_, expected_max_channels_per_octave, tolerance); }