Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 43 additions & 3 deletions src/test/soundproxy_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,49 @@ class SoundSourceProxyTest : public MixxxTest, SoundSourceProviderRegistration {
const CSAMPLE* expected,
const CSAMPLE* actual,
const char* errorMessage) {
for (SINT i = 0; i < size; ++i) {
EXPECT_NEAR(expected[i], actual[i], kMaxDecodingError)
<< "i=" << i << " " << errorMessage;
int error_count = 0;
SINT first = 0;
SINT last = 0;
SINT i = 0;
for (; i < size - 1; i += 2) {
if (std::abs(expected[i] - actual[i]) > kMaxDecodingError) {
error_count = 1;
first = i;
EXPECT_NEAR(expected[i], actual[i], kMaxDecodingError)
<< "i=" << i << " " << errorMessage;
break;
}
if (std::abs(expected[i + 1] - actual[i + 1]) > kMaxDecodingError) {
error_count = 1;
first = i;
EXPECT_NEAR(expected[i + 1], actual[i + 1], kMaxDecodingError)
<< "i=" << i << " " << errorMessage;
break;
}
}
if (error_count == 1) {
std::ostringstream csv;
csv << std::setprecision(std::numeric_limits<CSAMPLE>::max_digits10);

csv << "sep=,\nexpected left,expected right,actual left, actual "
"right, error\n"; // CSV header

for (SINT i = 0; i < size - 1; i += 2) {
csv << expected[i] << "," << expected[i + 1] << "," << actual[i]
<< "," << actual[i + 1];
if (std::abs(expected[i] - actual[i]) > kMaxDecodingError ||
std::abs(expected[i + 1] - actual[i + 1]) > kMaxDecodingError) {
csv << ",1\n";
error_count++;
last = i;
} else {
csv << ",0\n";
}
}
std::cout << "CSV debug output with " << error_count
<< " errors in the range " << first / 2 << " to " << last / 2
<< ":\n"
<< csv.str();
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/util/indexrange.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ std::optional<IndexRange> intersect2(IndexRange lhs, IndexRange rhs) {
}

std::ostream& operator<<(std::ostream& os, IndexRange arg) {
return os << '[' << arg.start() << " -> " << arg.end() << ')';
return os << '[' << arg.start() << " -> " << arg.end() << ']';
}

QDebug operator<<(QDebug dbg, IndexRange arg) {
Expand Down
Loading