[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.
|