--- /dev/null
+from template import program_test_case
+
+class aubioonset_unit(program_test_case):
+
+ import os.path
+ filename = os.path.join('..','..','sounds','woodblock.aiff')
+ progname = os.path.join('..','..','examples','aubioonset')
+
+ def test_aubioonset_with_inf_silence(self):
+ """ test aubioonset with -s 0 """
+ self.command += " -s 0"
+ self.getOutput()
+ assert len(self.output) == 0, self.output
+
+class aubioonset_unit_finds_onset(aubioonset_unit):
+
+ def test_aubioonset(self):
+ """ test aubioonset with default parameters """
+ self.getOutput()
+ assert len(str(self.output)) != 0, "no output produced with command:\n" \
+ + self.command
+
+ def test_aubioonset_with_no_silence(self):
+ """ test aubioonset with -s -100 """
+ self.command += " -s -100 "
+ self.getOutput()
+ # only one onset in woodblock.aiff
+ self.assertNotEqual(0, len(str(self.output)), \
+ "no output produced with command:\n" + self.command)
+ self.assertEqual(1, len(self.output.split('\n')) )
+ # onset should be at 0.00000
+ self.assertEqual(0, float(self.output.strip()))
+
+list_of_onset_modes = ["energy", "specdiff", "hfc", "complex", "phase", \
+ "kl", "mkl", "specflux"]
+
+for name in list_of_onset_modes:
+ exec("class aubioonset_"+name+"_unit(aubioonset_unit):\n\
+ options = \" -O "+name+" \"")
+
+if __name__ == '__main__': unittest.main()