Maria@39: # -*- coding: utf-8 -*- Maria@39: """ Maria@39: Created on Fri Sep 1 19:11:52 2017 Maria@39: Maria@39: @author: mariapanteli Maria@39: """ Maria@39: Maria@39: import pytest Maria@39: Maria@39: import numpy as np m@85: import os Maria@39: Maria@39: import scripts.OPMellin as OPMellin Maria@39: Maria@39: Maria@39: opm = OPMellin.OPMellin() m@85: TEST_AUDIO_FILE = os.path.join(os.path.dirname(__file__), os.path.pardir, m@85: 'data', 'sample_dataset', 'Audio', 'mel_1_2_1.wav') Maria@39: Maria@39: def test_load_audiofile(): m@85: audiofile = TEST_AUDIO_FILE Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: assert opm.y is not None and opm.sr is not None Maria@39: Maria@39: Maria@39: def test_mel_spectrogram(): m@85: audiofile = TEST_AUDIO_FILE Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: # assume 40 mel bands Maria@39: assert opm.melspec.shape[0] == 40 Maria@39: Maria@39: Maria@39: def test_post_process_spec(): m@85: audiofile = TEST_AUDIO_FILE Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: melspec = opm.melspec Maria@39: opm.post_process_spec(melspec=melspec) Maria@39: proc_melspec = opm.melspec Maria@39: assert melspec.shape == proc_melspec.shape Maria@39: Maria@39: Maria@39: def test_onset_patterns_n_frames(): m@85: audiofile = TEST_AUDIO_FILE Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr) Maria@39: assert opm.op.shape[2] == np.round(((opm.melspec.shape[1] / opm.melsr) - opm.win2sec) * 2.) Maria@39: Maria@39: Maria@39: def test_onset_patterns_n_bins(): m@85: audiofile = TEST_AUDIO_FILE Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr) Maria@39: assert opm.op.shape[0] == 40 Maria@39: Maria@39: Maria@39: def test_post_process_op(): m@85: audiofile = TEST_AUDIO_FILE Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr) Maria@39: op = opm.op Maria@39: opm.post_process_op() Maria@39: proc_op = opm.op Maria@39: assert op.shape == proc_op.shape