[pure-lang-svn] SF.net SVN: pure-lang:[466] pure/trunk/test
Status: Beta
Brought to you by:
agraef
From: <ag...@us...> - 2008-08-11 20:06:20
|
Revision: 466 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=466&view=rev Author: agraef Date: 2008-08-11 20:06:18 +0000 (Mon, 11 Aug 2008) Log Message: ----------- Add timex/catch/throw regression test. Added Paths: ----------- pure/trunk/test/test017.log pure/trunk/test/test017.pure Added: pure/trunk/test/test017.log =================================================================== --- pure/trunk/test/test017.log (rev 0) +++ pure/trunk/test/test017.log 2008-08-11 20:06:18 UTC (rev 466) @@ -0,0 +1,45 @@ +timex f/*0:1*/ = (clock-t0/*1:*/)/1000000,res/*0:*/ when t0/*0:*/ = clock; res/*0:*/ = f/*1:1*/ () { + rule #0: res = f () + state 0: #0 + <var> state 1 + state 1: #0 +} { + rule #0: t0 = clock + state 0: #0 + <var> state 1 + state 1: #0 +} end; +foo n/*0:1*/ = if n/*0:1*/<=0 then n/*0:1*/ else foo (n/*0:1*/-1); +bar x/*0:1*/ = catch id (throw x/*1:1*/); +{ + rule #0: timex f = (clock-t0)/1000000,res when t0 = clock; res = f () end + state 0: #0 + <var> state 1 + state 1: #0 +} +{ + rule #0: foo n = if n<=0 then n else foo (n-1) + state 0: #0 + <var> state 1 + state 1: #0 +} +{ + rule #0: bar x = catch id (throw x) + state 0: #0 + <var> state 1 + state 1: #0 +} +timex (\_/*0:*/ -> foo 100000 { + rule #0: _ = foo 100000 + state 0: #0 + <var> state 1 + state 1: #0 +}); +0.14,0 +timex (\_/*0:*/ -> bar 99 { + rule #0: _ = bar 99 + state 0: #0 + <var> state 1 + state 1: #0 +}); +0.0,99 Added: pure/trunk/test/test017.pure =================================================================== --- pure/trunk/test/test017.pure (rev 0) +++ pure/trunk/test/test017.pure 2008-08-11 20:06:18 UTC (rev 466) @@ -0,0 +1,10 @@ + +using system; + +timex f = (clock-t0)/CLOCKS_PER_SEC, res when t0 = clock; res = f () end; + +foo n = if n<=0 then n else foo (n-1); // burn some cycles +bar x = catch id (throw x); + +timex (\_->foo 100000); +timex (\_->bar 99); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |