old_contents: #!/usr/bin/env python
  """Benchmark numpy.ndarray."""
  
  from __future__ import print_function
  import timeit
  
  NAME = "ndarray::instantiation"
  REPEATS = 3
  ITERATIONS = 100000
  
  
  def print_version():
      """Print the TAP version."""
      print("TAP version 13")
  
  
  def print_summary(total, passing):
      """Print the benchmark summary.
  
      # Arguments
  
      * `total`: total number of tests
      * `passing`: number of passing tests
  
      """
      print("#")
      print("1.." + str(total))  # TAP plan
      print("# total " + str(total))
      print("# pass  " + str(passing))
      print("#")
      print("# ok")
  
  
  def print_results(elapsed):
      """Print benchmark results.
  
      # Arguments
  
      * `elapsed`: elapsed time (in seconds)
  
      # Examples
  
      ``` python
      python> print_results(0.131009101868)
      ```
      """
      rate = ITERATIONS / elapsed
  
      print("  ---")
      print("  iterations: " + str(ITERATIONS))
      print("  elapsed: " + str(elapsed))
      print("  rate: " + str(rate))
      print("  ...")
  
  
  def benchmark():
      """Run the benchmark and print benchmark results."""
      setup = "import numpy as np; x = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], dtype='float64'); shape = [3, 2]; strides = [2, 1]; offset = 0; order = 'C';"
      stmt = "y = np.ndarray(buffer=x, shape=shape, strides=strides, offset=offset, order=order)"
  
      t = timeit.Timer(stmt, setup=setup)
  
      print_version()
  
      for i in xrange(REPEATS):
          print("# python::numpy::" + NAME)
          elapsed = t.timeit(number=ITERATIONS)
          print_results(elapsed)
          print("ok " + str(i+1) + " benchmark finished")
  
      print_summary(REPEATS, REPEATS)
  
  
  def main():
      """Run the benchmark."""
      benchmark()
  
  
  if __name__ == "__main__":
      main()
  
new_contents: #!/usr/bin/env python
  """Benchmark numpy.ndarray."""
  
  from __future__ import print_function
  import timeit
  
  REPEATS = 3
  COUNT = [0]  # use a list to allow modification within nested scopes
  
  
  def print_version():
      """Print the TAP version."""
      print("TAP version 13")
  
  
  def print_summary(total, passing):
      """Print the benchmark summary.
  
      # Arguments
  
      * `total`: total number of tests
      * `passing`: number of passing tests
  
      """
      print("#")
      print("1.." + str(total))  # TAP plan
      print("# total " + str(total))
      print("# pass  " + str(passing))
      print("#")
      print("# ok")
  
  
  def print_results(iterations, elapsed):
      """Print benchmark results.
  
      # Arguments
  
      * `iterations`: number of iterations
      * `elapsed`: elapsed time (in seconds)
  
      # Examples
  
      ``` python
      python> print_results(100000, 0.131009101868)
      ```
      """
      rate = iterations / elapsed
  
      print("  ---")
      print("  iterations: " + str(iterations))
      print("  elapsed: " + str(elapsed))
      print("  rate: " + str(rate))
      print("  ...")
  
  
  def benchmark(name, setup, stmt, iterations):
      """Run the benchmark and print benchmark results.
  
      # Arguments
  
      * `name`: benchmark name
      * `setup`: benchmark setup
      * `stmt`: statement to benchmark
      * `iterations`: number of iterations
  
      # Examples
  
      ``` python
      python> benchmark("random", "from random import random;", "y = random()", 1000000)
      ```
      """
      t = timeit.Timer(stmt, setup=setup)
  
      print_version()
  
      i = 0
      while i < REPEATS:
          print("# python::numpy::" + name)
          COUNT[0] += 1
          elapsed = t.timeit(number=iterations)
          print_results(iterations, elapsed)
          print("ok " + str(COUNT[0]) + " benchmark finished")
          i += 1
  
  
  def main():
      """Run the benchmarks."""
      name = "instantiation"
      setup = "import numpy as np; x = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], dtype='float64'); shape = [3, 2]; strides = [2, 1]; offset = 0; order = 'C';"
      stmt = "y = np.ndarray(buffer=x, shape=shape, strides=strides, offset=offset, order=order)"
      iterations = 100000
      benchmark(name, setup, stmt, iterations)
  
      print_summary(COUNT[0], COUNT[0])
  
  
  if __name__ == "__main__":
      main()
  
subject: Refactor NumPy benchmarks