code: def test_exponential_decay(self):
      self.assert_invalid_step_values(
          algorithms.exponential_decay(
              initial_value=0.1,
              reduction_freq=10,
              reduction_rate=0.9,
          ),
          initial_value=0.1,
          final_value=0.1 * 0.9**3,
          epochs=31,
      )
  
file_path: neupy/tests/algorithms/test_step_updates.py
imports: from neupy import algorithms, layers
  from base import BaseTestCase
  from helpers import simple_classification
label_desc: Use image node_id 3 for calling the StepUpdateTestCase obj's underlying member method code with example usage: obj.test_exponential_decay() without return types