Mercurial > js4py
changeset 164:44d0ccb983d3 javascript-exercises
Move files to populate javascript-answers folder with closure-exercises.js and testtools.js.
| author | jf3243 |
|---|---|
| date | Wed, 09 Nov 2011 17:29:18 +0000 |
| parents | db35829a438f |
| children | 409f47f91f33 |
| files | core-javascript/core-javascript-work/answers/closure-exercises.js core-javascript/core-javascript-work/closure-exercises.js core-javascript/core-javascript-work/testtools.js core-javascript/javascript-exercises/answers/closure-exercises.js core-javascript/javascript-exercises/closure-exercises.js core-javascript/javascript-exercises/testtools.js |
| diffstat | 6 files changed, 412 insertions(+), 412 deletions(-) [+] |
line wrap: on
line diff
--- a/core-javascript/core-javascript-work/answers/closure-exercises.js Wed Nov 09 17:22:28 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -var something; - -TEST('anon', function() -{ - var answer; - - // start - answer = function(){ - return 1; - }; - // stop - - assert( answer() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(){ - - var answer; - - // start - answer = function(){ - return 1; - }; - // stop - - return answer; - }; - - var my_inner_function = outer_function(); - - assert( typeof my_inner_function === 'function' ); - assert( my_inner_function() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(){ - - var answer; - - // start - answer = function(){ - return 1; - }; - // stop - - return answer; - }; - - assert( outer_function()() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(n){ - - var answer; - - // start - answer = function(){ - return n; - }; - // stop - - return answer; - }; - - assert( outer_function(1)() === 1 ); - assert( outer_function(2)() === 2 ); - assert( outer_function(3)() === 3 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(n){ - - // start - return function(){ - return n; - }; - // stop - }; - - assert( outer_function(1)() === 1 ); - assert( outer_function(2)() === 2 ); - assert( outer_function(3)() === 3 ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var get_value = function(){ - return value; - }; - - something = 1; - assert( get_value() === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var set_value = function(n){ - value = n; - }; - - set_value(2); - something = 2; - assert( value === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var get_value = function(){ - return value; - }; - - var set_value = function(n){ - value = n; - }; - - something = 1; - assert( get_value() === something ); - - set_value(2); - something = 2; - assert( get_value() === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var ddd = function(aaa, bbb){ - return { - // start - aaa: aaa, - bbb: bbb - // stop - }; - }; - - var obj = ddd(1, 2); - - assert( obj.aaa === 1 ); - assert( obj.bbb === 2 ); - -}); - - -TEST('anon', function() -{ - - var get_set_factory = function(){ - - // start - var value; - - var get = function(){ - return value; - }; - - var set = function(new_value){ - value = new_value; - }; - // stop - - return { - get : get, - set : set - }; - }; - - var tmp; - tmp = get_set_factory(); - var get_a = tmp.get; - var set_a = tmp.set; - - tmp = get_set_factory(); - var get_b = tmp.get; - var set_b = tmp.set; - - - set_a('aaa'); - assert( get_a() == 'aaa' ); - - set_b('bbb'); - assert( get_b() == 'bbb' ); - - assert( get_a() == 'aaa' ); -});
--- a/core-javascript/core-javascript-work/closure-exercises.js Wed Nov 09 17:22:28 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -var something; - -TEST('anon', function() -{ - var answer; - - // Please write your answer here. - - assert( answer() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(){ - - var answer; - - // Please write your answer here. - - return answer; - }; - - var my_inner_function = outer_function(); - - assert( typeof my_inner_function === 'function' ); - assert( my_inner_function() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(){ - - var answer; - - // Please write your answer here. - - return answer; - }; - - assert( outer_function()() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(n){ - - var answer; - - // Please write your answer here. - - return answer; - }; - - assert( outer_function(1)() === 1 ); - assert( outer_function(2)() === 2 ); - assert( outer_function(3)() === 3 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(n){ - - // Please write your answer here. - }; - - assert( outer_function(1)() === 1 ); - assert( outer_function(2)() === 2 ); - assert( outer_function(3)() === 3 ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var get_value = function(){ - return value; - }; - - assert( get_value() === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var set_value = function(n){ - value = n; - }; - - set_value(2); - assert( value === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var get_value = function(){ - return value; - }; - - var set_value = function(n){ - value = n; - }; - - assert( get_value() === something ); - - set_value(2); - assert( get_value() === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var ddd = function(aaa, bbb){ - return { - // Please write your answer here. - }; - }; - - var obj = ddd(1, 2); - - assert( obj.aaa === 1 ); - assert( obj.bbb === 2 ); - -}); - - -TEST('anon', function() -{ - - var get_set_factory = function(){ - - // Please write your answer here. - - return { - get : get, - set : set - }; - }; - - var tmp; - tmp = get_set_factory(); - var get_a = tmp.get; - var set_a = tmp.set; - - tmp = get_set_factory(); - var get_b = tmp.get; - var set_b = tmp.set; - - - set_a('aaa'); - assert( get_a() == 'aaa' ); - - set_b('bbb'); - assert( get_b() == 'bbb' ); - - assert( get_a() == 'aaa' ); -});
--- a/core-javascript/core-javascript-work/testtools.js Wed Nov 09 17:22:28 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -var telltail = 'global'; -var _assertion_count = 0; - -// Define a global function 'log'. -var log; -if (this.hasOwnProperty('jsArguments')){ - - log = function(s){ - print(s + '\n'); - }; -} else { - log = print; -} - -// -var TEST = function(title, code){ - - var x; - - log( 'Testing: ' + title ); - _assertion_count = 0; - - try { - code(); - } catch (x) { - log('! Exception at ' + x.fileName +':' + x.lineNumber); - log('! [' + x.name + '] ' + x.message ); - } - -}; - -var assert = function(arg){ - _assertion_count += 1; - if (!arg){ - var msg = '! assert ' + _assertion_count + ' has failed'; - log(msg); - } -}; -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/javascript-exercises/answers/closure-exercises.js Wed Nov 09 17:29:18 2011 +0000 @@ -0,0 +1,205 @@ +var something; + +TEST('anon', function() +{ + var answer; + + // start + answer = function(){ + return 1; + }; + // stop + + assert( answer() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(){ + + var answer; + + // start + answer = function(){ + return 1; + }; + // stop + + return answer; + }; + + var my_inner_function = outer_function(); + + assert( typeof my_inner_function === 'function' ); + assert( my_inner_function() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(){ + + var answer; + + // start + answer = function(){ + return 1; + }; + // stop + + return answer; + }; + + assert( outer_function()() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(n){ + + var answer; + + // start + answer = function(){ + return n; + }; + // stop + + return answer; + }; + + assert( outer_function(1)() === 1 ); + assert( outer_function(2)() === 2 ); + assert( outer_function(3)() === 3 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(n){ + + // start + return function(){ + return n; + }; + // stop + }; + + assert( outer_function(1)() === 1 ); + assert( outer_function(2)() === 2 ); + assert( outer_function(3)() === 3 ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var get_value = function(){ + return value; + }; + + something = 1; + assert( get_value() === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var set_value = function(n){ + value = n; + }; + + set_value(2); + something = 2; + assert( value === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var get_value = function(){ + return value; + }; + + var set_value = function(n){ + value = n; + }; + + something = 1; + assert( get_value() === something ); + + set_value(2); + something = 2; + assert( get_value() === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var ddd = function(aaa, bbb){ + return { + // start + aaa: aaa, + bbb: bbb + // stop + }; + }; + + var obj = ddd(1, 2); + + assert( obj.aaa === 1 ); + assert( obj.bbb === 2 ); + +}); + + +TEST('anon', function() +{ + + var get_set_factory = function(){ + + // start + var value; + + var get = function(){ + return value; + }; + + var set = function(new_value){ + value = new_value; + }; + // stop + + return { + get : get, + set : set + }; + }; + + var tmp; + tmp = get_set_factory(); + var get_a = tmp.get; + var set_a = tmp.set; + + tmp = get_set_factory(); + var get_b = tmp.get; + var set_b = tmp.set; + + + set_a('aaa'); + assert( get_a() == 'aaa' ); + + set_b('bbb'); + assert( get_b() == 'bbb' ); + + assert( get_a() == 'aaa' ); +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/javascript-exercises/closure-exercises.js Wed Nov 09 17:29:18 2011 +0000 @@ -0,0 +1,168 @@ +var something; + +TEST('anon', function() +{ + var answer; + + // Please write your answer here. + + assert( answer() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(){ + + var answer; + + // Please write your answer here. + + return answer; + }; + + var my_inner_function = outer_function(); + + assert( typeof my_inner_function === 'function' ); + assert( my_inner_function() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(){ + + var answer; + + // Please write your answer here. + + return answer; + }; + + assert( outer_function()() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(n){ + + var answer; + + // Please write your answer here. + + return answer; + }; + + assert( outer_function(1)() === 1 ); + assert( outer_function(2)() === 2 ); + assert( outer_function(3)() === 3 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(n){ + + // Please write your answer here. + }; + + assert( outer_function(1)() === 1 ); + assert( outer_function(2)() === 2 ); + assert( outer_function(3)() === 3 ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var get_value = function(){ + return value; + }; + + assert( get_value() === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var set_value = function(n){ + value = n; + }; + + set_value(2); + assert( value === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var get_value = function(){ + return value; + }; + + var set_value = function(n){ + value = n; + }; + + assert( get_value() === something ); + + set_value(2); + assert( get_value() === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var ddd = function(aaa, bbb){ + return { + // Please write your answer here. + }; + }; + + var obj = ddd(1, 2); + + assert( obj.aaa === 1 ); + assert( obj.bbb === 2 ); + +}); + + +TEST('anon', function() +{ + + var get_set_factory = function(){ + + // Please write your answer here. + + return { + get : get, + set : set + }; + }; + + var tmp; + tmp = get_set_factory(); + var get_a = tmp.get; + var set_a = tmp.set; + + tmp = get_set_factory(); + var get_b = tmp.get; + var set_b = tmp.set; + + + set_a('aaa'); + assert( get_a() == 'aaa' ); + + set_b('bbb'); + assert( get_b() == 'bbb' ); + + assert( get_a() == 'aaa' ); +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/javascript-exercises/testtools.js Wed Nov 09 17:29:18 2011 +0000 @@ -0,0 +1,39 @@ +var telltail = 'global'; +var _assertion_count = 0; + +// Define a global function 'log'. +var log; +if (this.hasOwnProperty('jsArguments')){ + + log = function(s){ + print(s + '\n'); + }; +} else { + log = print; +} + +// +var TEST = function(title, code){ + + var x; + + log( 'Testing: ' + title ); + _assertion_count = 0; + + try { + code(); + } catch (x) { + log('! Exception at ' + x.fileName +':' + x.lineNumber); + log('! [' + x.name + '] ' + x.message ); + } + +}; + +var assert = function(arg){ + _assertion_count += 1; + if (!arg){ + var msg = '! assert ' + _assertion_count + ' has failed'; + log(msg); + } +}; +
