module Test.Benchmark.Function where

import Text.Printf
import Data.Time
import System.IO
import Data.Char
import System.Random

runData f = do 
  randomChar <- randomIO
  if (last (show f)) == randomChar then return () else return ()

timeAction action = do
  t1 <- getCurrentTime
  g <- action
  t2 <- getCurrentTime
  let timeInUnits = (realToFrac $ diffUTCTime t2 t1 :: Float) 
  return timeInUnits 

timeData d = timeAction (runData d)

timeAndPrintData d = timeAndPrintAction (runData d)

timeAndPrintAction action = do
  time <- timeAction action
  printf "%f\n" time