shithub: aubio

Download patch

ref: 42f1cf149c22a8d0f0f11d251f1af8097f93695a
parent: 4ecfee960a1cd5c60f223226b8edb69ffcf62529
author: Paul Brossier <piem@piem.org>
date: Sat May 17 23:23:11 EDT 2008

tests/python/src/utils/hist.py: update existing test cases, add two more

--- a/tests/python/src/utils/hist.py
+++ b/tests/python/src/utils/hist.py
@@ -1,4 +1,5 @@
 import unittest
+import random
 
 from template import aubio_unit_template
 from aubio.aubiowrapper import *
@@ -5,8 +6,8 @@
 
 buf_size = 2048
 channels = 1
-flow = 0.
-fhig = 100.
+flow = float(random.randint(0, 100) + random.random())
+fhig = float(random.randint(100, 1000) + random.random())
 
 nelems = 1000
 
@@ -13,6 +14,7 @@
 class hist_unit(aubio_unit_template):
 
   def setUp(self):
+    print flow, fhig
     self.o = new_aubio_hist(flow, fhig, nelems, channels)
 
   def tearDown(self):
@@ -30,8 +32,9 @@
     self.assertEqual(0., aubio_hist_mean(self.o))
     del_fvec(input)
 
-  def test_hist_impulse(self):
-    """ test hist on impulse """
+  def test_hist_impulse_top(self):
+    """ test hist on impulse (top - 1.) """
+    """ this returns 1./nelems because 1 element is in the range """
     input = new_fvec(buf_size, channels)
     constant = fhig - 1. 
     fvec_write_sample(input,constant,0,0)
@@ -39,13 +42,34 @@
     self.assertCloseEnough(1./nelems, aubio_hist_mean(self.o))
     del_fvec(input)
 
-  def test_hist_impulse2(self):
-    """ test hist on impulse """
+  def test_hist_impulse_over(self):
+    """ test hist on impulse (top + 1.) """
+    """ this returns 0 because constant is out of range """
     input = new_fvec(buf_size, channels)
     constant = fhig + 1. 
     fvec_write_sample(input,constant,0,0)
     aubio_hist_do_notnull(self.o, input)
+    self.assertCloseEnough(0., aubio_hist_mean(self.o))
+    del_fvec(input)
+
+  def test_hist_impulse_bottom(self):
+    """ test hist on constant near lower limit """
+    """ this returns 1./nelems because 1 element is in the range """
+    input = new_fvec(buf_size, channels)
+    constant = flow + 1. 
+    fvec_write_sample(input,constant,0,0)
+    aubio_hist_do_notnull(self.o, input)
     self.assertCloseEnough(1./nelems, aubio_hist_mean(self.o))
+    del_fvec(input)
+
+  def test_hist_impulse_under(self):
+    """ test hist on constant under lower limit """
+    """ this returns 0 because constant is out of range """
+    input = new_fvec(buf_size, channels)
+    constant = flow - 1. 
+    fvec_write_sample(input,constant,0,0)
+    aubio_hist_do_notnull(self.o, input)
+    self.assertCloseEnough(0., aubio_hist_mean(self.o))
     del_fvec(input)
 
 if __name__ == '__main__': unittest.main()