1010# http://cl.ly/image/1z3b3y41130b
1111# This can calculate is_fibonacci?(fib(2**18)) in ~0.9 seconds.
1212
13- require ' benchmark'
14- require_relative ' fast_fib'
13+ require " benchmark"
14+ require_relative " fast_fib"
1515
1616BIG_FIB_INPUT = 2 **18
1717
@@ -28,7 +28,7 @@ def is_fibonacci?(n)
2828# Print out some friendly usage information
2929def show_usage!
3030 puts "Usage:"
31- puts " #{ $0 } <number-to-test>"
31+ puts " #{ $PROGRAM_NAME } <number-to-test>"
3232 puts ""
3333 puts "Options:"
3434 puts " -t, --test Run PASS/FAIL tests"
@@ -62,13 +62,13 @@ def run_benchmarks!(iterations = 3)
6262# Run our test suite
6363def run_tests!
6464 puts "Testing with Fibonacci inputs"
65- [ 0 , 1 , 2 , 3 , 5 , 39088169 ] . each do |n |
65+ [ 0 , 1 , 2 , 3 , 5 , 39088169 ] . each do |n |
6666 assert_equal ( true , is_fibonacci? ( n ) , "is_fibonacci?(#{ n } ) is true" )
6767 end
6868
6969 puts ""
7070 puts "Testing with non-Fibonacci inputs"
71- [ 4 , 6 , 7 , 10 , 39088169 - 1 ] . each do |n |
71+ [ 4 , 6 , 7 , 10 , 39088169 - 1 ] . each do |n |
7272 assert_equal ( false , is_fibonacci? ( n ) , "is_fibonacci?(#{ n } ) is false" )
7373 end
7474
@@ -80,8 +80,11 @@ def run_tests!
8080
8181 puts "done"
8282
83- assert_equal ( true , is_fibonacci? ( big_fib ) , "is_fibonacci?(fib(#{ BIG_FIB_INPUT } )) is true" )
84- assert_equal ( false , is_fibonacci? ( big_not_fib ) , "is_fibonacci?(fib(#{ BIG_FIB_INPUT } ) + 100) is false" )
83+ assert_equal ( true , is_fibonacci? ( big_fib ) ,
84+ "is_fibonacci?(fib(#{ BIG_FIB_INPUT } )) is true" )
85+
86+ assert_equal ( false , is_fibonacci? ( big_not_fib ) ,
87+ "is_fibonacci?(fib(#{ BIG_FIB_INPUT } ) + 100) is false" )
8588end
8689
8790# Helper method for testing purposes
@@ -98,13 +101,13 @@ def assert_equal(expected, actual, msg)
98101 assert ( expected == actual , msg )
99102end
100103
101- if __FILE__ == $0
104+ if __FILE__ == $PROGRAM_NAME
102105 case ARGV [ 0 ]
103- when '-h' , ' --help' , '' , nil
106+ when "-h" , " --help" , "" , nil
104107 show_usage!
105- when '-b' , ' --bench'
108+ when "-b" , " --bench"
106109 run_benchmarks!
107- when '-t' , ' --test'
110+ when "-t" , " --test"
108111 run_tests!
109112 else
110113 puts is_fibonacci? ( ARGV [ 0 ] . to_i )
0 commit comments