From a09f44a82ec9c8f8932f815f9b5f90127d1edbe2 Mon Sep 17 00:00:00 2001
From: Johannes Demel <ufcsy@student.kit.edu>
Date: Mon, 28 Sep 2015 11:00:27 +0200
Subject: random-analog: fixed reseed issue

---
 gnuradio-runtime/python/gnuradio/gr/qa_random.py | 29 ++++++++++++------------
 1 file changed, 14 insertions(+), 15 deletions(-)

(limited to 'gnuradio-runtime/python/gnuradio/gr/qa_random.py')

diff --git a/gnuradio-runtime/python/gnuradio/gr/qa_random.py b/gnuradio-runtime/python/gnuradio/gr/qa_random.py
index 6e321894b9..d3e5410454 100644
--- a/gnuradio-runtime/python/gnuradio/gr/qa_random.py
+++ b/gnuradio-runtime/python/gnuradio/gr/qa_random.py
@@ -38,39 +38,38 @@ class test_random(gr_unittest.TestCase):
             self.assertLess(value, 1)
             self.assertGreaterEqual(value, 0)
 
-    # Check reseed method (init with time and seed as fix number)
-    def test_2(self):
+    # Same seed should yield same random values.
+    def test_2_same_seed(self):
         num = 5
-
-        rndm0 = gr.random(42)  # init with time
-        rndm1 = gr.random(42)  # init with fix seed
+        # Init with fixed seed.
+        rndm0 = gr.random(42)
+        rndm1 = gr.random(42)
         for k in range(num):
             x = rndm0.ran1()
             y = rndm1.ran1()
             self.assertEqual(x, y)
 
+    # reseed should yield same numbers.
+    def test_003_reseed(self):
+        num = 5
         x = np.zeros(num)
         y = np.zeros(num)
-        rndm0 = gr.random(42)  # init with fix seed 1
-        for k in range(num):
-            x[k] = rndm0.ran1()
-        rndm1.reseed(43)  # init with fix seed 2
+        rndm = gr.random(43)  # init with fix seed 1
         for k in range(num):
-            y[k] = rndm0.ran1()
+            x[k] = rndm.ran1()
+        rndm.reseed(43)  # init with fix seed 2
         for k in range(num):
-            self.assertNotEqual(x[k], y[k])
+            y[k] = rndm.ran1()
+        self.assertFloatTuplesAlmostEqual(x, y)
 
-    def test_003_integer(self):
+    def test_004_integer(self):
         nitems = 100000
         minimum = 2
         maximum = 42
-
         rng = gr.random(1, minimum, maximum)
-
         rnd_vals = np.zeros(nitems, dtype=int)
         for i in range(nitems):
             rnd_vals[i] = rng.ran_int()
-
         self.assertGreaterEqual(minimum, np.min(rnd_vals))
         self.assertLess(np.max(rnd_vals), maximum)
 
-- 
cgit v1.2.3