annotate core-javascript/core-javascript-work/testtools.js @ 154:ee0bf994ab95 core-javascript.closure-exercises

Add remove_answers.py script (and clean up closure-exercises.py).
author jf3243
date Wed, 02 Nov 2011 17:27:39 +0000
parents 82f672a37506
children b774913eb242
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
138
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
1 var telltail = 'global';
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
2 var _assertion_count = 0;
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
3
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
4 // Define a global function 'log'.
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
5 var log;
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
6 if (this.hasOwnProperty('jsArguments')){
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
7
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
8 log = function(s){
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
9 print(s + '\n');
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
10 };
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
11 } else {
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
12 log = print;
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
13 }
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
14
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
15 //
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
16 var TEST = function(title, code){
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
17
152
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
18 var x;
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
19
138
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
20 log( 'Testing: ' + title );
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
21 _assertion_count = 0;
152
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
22
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
23 try {
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
24 code();
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
25 } catch (x) {
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
26 log('! Exception at ' + x.fileName +':' + x.lineNumber);
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
27 log('! [' + x.name + '] ' + x.message );
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
28 }
82f672a37506 In testtools.js catch and report exceptions.
jf3243
parents: 138
diff changeset
29
138
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
30 };
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
31
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
32 var assert = function(arg){
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
33 _assertion_count += 1;
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
34 if (!arg){
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
35 var msg = '! assert ' + _assertion_count + ' has failed';
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
36 log(msg);
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
37 }
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
38 };
20d76c716c9d core-javascript-work$ for NAME in * ; do perl -i -p -e 's/\n/ # use DOS line endings
Jonathan Fine <jfine@pytex.org>
parents: 137
diff changeset
39