Add unit tests for Project Euler

db4
Aaron Schaefer 2008-11-04 01:04:03 -05:00
parent e923ec16d3
commit e763b5a335
13 changed files with 44 additions and 13 deletions

View File

@ -0,0 +1,6 @@
USING: project-euler.001 tools.test ;
IN: project-euler.001.tests
[ 233168 ] [ euler001 ] unit-test
[ 233168 ] [ euler001a ] unit-test
[ 233168 ] [ euler001b ] unit-test

View File

@ -0,0 +1,5 @@
USING: project-euler.002 tools.test ;
IN: project-euler.002.tests
[ 4613732 ] [ euler002 ] unit-test
[ 4613732 ] [ euler002a ] unit-test

View File

@ -13,7 +13,8 @@ IN: project-euler.002
! 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
! Find the sum of all the even-valued terms in the sequence which do not exceed one million.
! Find the sum of all the even-valued terms in the sequence which do not exceed
! four million.
! SOLUTION
@ -30,10 +31,10 @@ PRIVATE>
V{ 0 } clone 1 rot (fib-upto) ;
: euler002 ( -- answer )
1000000 fib-upto [ even? ] filter sum ;
4000000 fib-upto [ even? ] filter sum ;
! [ euler002 ] 100 ave-time
! 0 ms run / 0 ms GC ave time - 100 trials
! 0 ms ave run time - 0.22 SD (100 trials)
! ALTERNATE SOLUTIONS
@ -44,9 +45,9 @@ PRIVATE>
but-last-slice { 0 1 } prepend ;
: euler002a ( -- answer )
1000000 fib-upto* [ even? ] filter sum ;
4000000 fib-upto* [ even? ] filter sum ;
! [ euler002a ] 100 ave-time
! 0 ms run / 0 ms GC ave time - 100 trials
! 0 ms ave run time - 0.2 SD (100 trials)
MAIN: euler002a

View File

@ -0,0 +1,4 @@
USING: project-euler.003 tools.test ;
IN: project-euler.003.tests
[ 6857 ] [ euler003 ] unit-test

View File

@ -10,16 +10,16 @@ IN: project-euler.003
! The prime factors of 13195 are 5, 7, 13 and 29.
! What is the largest prime factor of the number 317584931803?
! What is the largest prime factor of the number 600851475143 ?
! SOLUTION
! --------
: euler003 ( -- answer )
317584931803 factors supremum ;
600851475143 factors supremum ;
! [ euler003 ] 100 ave-time
! 1 ms run / 0 ms GC ave time - 100 trials
! 1 ms ave run time - 0.49 SD (100 trials)
MAIN: euler003

View File

@ -0,0 +1,4 @@
USING: project-euler.004 tools.test ;
IN: project-euler.004.tests
[ 906609 ] [ euler004 ] unit-test

View File

@ -32,6 +32,6 @@ PRIVATE>
source-004 dup cartesian-product [ product ] map prune max-palindrome ;
! [ euler004 ] 100 ave-time
! 1608 ms run / 102 ms GC ave time - 100 trials
! 1164 ms ave run time - 39.35 SD (100 trials)
MAIN: euler004

View File

@ -0,0 +1,4 @@
USING: project-euler.005 tools.test ;
IN: project-euler.005.tests
[ 232792560 ] [ euler005 ] unit-test

View File

@ -21,6 +21,6 @@ IN: project-euler.005
20 1 [ 1+ lcm ] reduce ;
! [ euler005 ] 100 ave-time
! 0 ms run / 0 ms GC ave time - 100 trials
! 0 ms ave run time - 0.14 SD (100 trials)
MAIN: euler005

View File

@ -0,0 +1,4 @@
USING: project-euler.006 tools.test ;
IN: project-euler.006.tests
[ 25164150 ] [ euler006 ] unit-test

View File

@ -0,0 +1,4 @@
USING: project-euler.007 tools.test ;
IN: project-euler.007.tests
[ 104743 ] [ euler007 ] unit-test

View File

@ -24,6 +24,6 @@ IN: project-euler.007
10001 nth-prime ;
! [ euler007 ] 100 ave-time
! 10 ms run / 0 ms GC ave time - 100 trials
! 5 ms ave run time - 1.13 SD (100 trials)
MAIN: euler007

View File

@ -1,7 +1,6 @@
! Copyright (c) 2008 Eric Mertens.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays assocs kernel locals.backend math math.order math.ranges
sequences ;
USING: arrays assocs kernel locals math math.order math.ranges sequences ;
IN: project-euler.076
! http://projecteuler.net/index.php?section=problems&id=76