def test_safe_cumprod(self): # Create some random test input test_input = np.random.uniform(size=(10, 20)) for axis in [0, 1]: for exclusive in [True, False]: with self.test_session(): # Compute cumprod with regular tf.cumprod cumprod_output = math_ops.cumprod( test_input, axis=axis, exclusive=exclusive).eval() # Compute cumprod with safe_cumprod safe_cumprod_output = wrapper.safe_cumprod( test_input, axis=axis, exclusive=exclusive).eval() for x, y in zip(cumprod_output.shape, safe_cumprod_output.shape): self.assertEqual(x, y) for x, y in zip(cumprod_output.flatten(), safe_cumprod_output.flatten()): # Use assertAlmostEqual for the actual values due to floating point self.assertAlmostEqual(x, y, places=5)