mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-28 23:08:59 +02:00
feat(convert): support same-format lossless re-encoding
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:spotiflac_android/utils/audio_conversion_utils.dart';
|
||||
|
||||
void main() {
|
||||
group('same-format lossless conversion', () {
|
||||
test('allows FLAC re-encoding for quality processing', () {
|
||||
expect(
|
||||
canConvertAudioFormat(sourceFormat: 'FLAC', targetFormat: 'FLAC'),
|
||||
isTrue,
|
||||
);
|
||||
expect(
|
||||
canConvertAudioFormat(sourceFormat: 'flac', targetFormat: ' flac '),
|
||||
isTrue,
|
||||
);
|
||||
});
|
||||
|
||||
test('keeps same-format lossy conversion disabled', () {
|
||||
expect(
|
||||
canConvertAudioFormat(sourceFormat: 'MP3', targetFormat: 'MP3'),
|
||||
isFalse,
|
||||
);
|
||||
expect(
|
||||
canConvertAudioFormat(sourceFormat: 'Opus', targetFormat: 'Opus'),
|
||||
isFalse,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
group('lossless processing options', () {
|
||||
test('preserves both resamplers and both dither methods', () {
|
||||
const soxrTpdf = LosslessConversionProcessing(
|
||||
dither: 'triangular',
|
||||
resampler: 'soxr',
|
||||
);
|
||||
const swrHighPass = LosslessConversionProcessing(
|
||||
dither: 'triangular_hp',
|
||||
resampler: 'swr',
|
||||
);
|
||||
|
||||
expect(soxrTpdf.normalizedResampler, 'soxr');
|
||||
expect(soxrTpdf.normalizedDither, 'triangular');
|
||||
expect(soxrTpdf.hasDither, isTrue);
|
||||
expect(swrHighPass.normalizedResampler, 'swr');
|
||||
expect(swrHighPass.normalizedDither, 'triangular_hp');
|
||||
expect(swrHighPass.hasDither, isTrue);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user