Mercurial > js4py
changeset 168:2d78ae4f0dfa javascript-exercises
Make a start on interactive exercise environment and additional exercises.
| author | jf3243 |
|---|---|
| date | Thu, 10 Nov 2011 12:28:41 +0000 |
| parents | 8f05cc516185 |
| children | 9bcc4b90335b |
| files | core-javascript/javascript-exercises/README.txt core-javascript/javascript-exercises/answers/object-exercises.js core-javascript/javascript-exercises/object-exercises.js core-javascript/javascript-exercises/testtools.js |
| diffstat | 4 files changed, 105 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/javascript-exercises/README.txt Thu Nov 10 12:28:41 2011 +0000 @@ -0,0 +1,8 @@ +help = [ + "'exit': quit the interpreter.", + "", + "Type 'help' at the 'js>' prompt to get this message." +].join('\n') + ' \n'; + + +writeln(help);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/javascript-exercises/answers/object-exercises.js Thu Nov 10 12:28:41 2011 +0000 @@ -0,0 +1,47 @@ +var something; + +TEST('if not found', function() +{ + var obj = {}; + + something = undefined; + assert( obj.name === something ); + + something = undefined; + assert( obj['name'] === something ); +}); + + +TEST('attributes and items', function() +{ + var answer; + + var obj = {}; + + obj.name = 'one'; + something = 'one'; + assert( obj.name === something ); + + obj['name'] = 'two'; + something = 'two'; + assert( obj['name'] === something ); + + something = 'two'; + assert( obj.name === something ); +}); + + +TEST('object literals', function() +{ + var answer; + + var obj = { + // start + name : 42, + second_name: 'secret' + // stop + }; + + assert( obj.name === 42 ); + assert( obj.second_name === 'secret' ); +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/javascript-exercises/object-exercises.js Thu Nov 10 12:28:41 2011 +0000 @@ -0,0 +1,39 @@ +var something; + +TEST('if not found', function() +{ + var obj = {}; + + assert( obj.name === something ); + + assert( obj['name'] === something ); +}); + + +TEST('attributes and items', function() +{ + var answer; + + var obj = {}; + + obj.name = 'one'; + assert( obj.name === something ); + + obj['name'] = 'two'; + assert( obj['name'] === something ); + + assert( obj.name === something ); +}); + + +TEST('object literals', function() +{ + var answer; + + var obj = { + // Please write your answer here. + }; + + assert( obj.name === 42 ); + assert( obj.second_name === 'secret' ); +});
--- a/core-javascript/javascript-exercises/testtools.js Thu Nov 10 12:27:29 2011 +0000 +++ b/core-javascript/javascript-exercises/testtools.js Thu Nov 10 12:28:41 2011 +0000 @@ -10,6 +10,7 @@ }; } else { log = print; + log = writeln; // Wrong, but get us working in jsdb.exe. } // @@ -37,3 +38,13 @@ } }; +var submit = function(name){ + + var filename = name + '-exercises.js'; + var status = run(filename); + + if (!status){ + writeln("Could not find file '" + filename + "'"); + } + +};
