smalltalk.addClass('StringTest', smalltalk.TestCase, [], 'Kernel-Tests'); smalltalk.addMethod( '_testJoin', smalltalk.method({ selector: 'testJoin', fn: function (){ var self=this; smalltalk.send(self, "_assert_equals_", [unescape("hello%2Cworld"), smalltalk.send(unescape("%2C"), "_join_", [["hello", "world"]])]); return self;} }), smalltalk.StringTest); smalltalk.addMethod( '_testStreamContents', smalltalk.method({ selector: 'testStreamContents', fn: function (){ var self=this; smalltalk.send(self, "_assert_equals_", ["hello world", smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(aStream){return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["hello"]);smalltalk.send($rec, "_space", []);return smalltalk.send($rec, "_nextPutAll_", ["world"]);})(aStream);})])]); return self;} }), smalltalk.StringTest); smalltalk.addMethod( '_testIncludesSubString', smalltalk.method({ selector: 'testIncludesSubString', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send("amber", "_includesSubString_", ["ber"])]); smalltalk.send(self, "_deny_", [smalltalk.send("amber", "_includesSubString_", ["zork"])]); return self;} }), smalltalk.StringTest); smalltalk.addMethod( '_testEquality', smalltalk.method({ selector: 'testEquality', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send("hello", "__eq", ["hello"])]); smalltalk.send(self, "_deny_", [smalltalk.send("hello", "__eq", ["world"])]); smalltalk.send(self, "_assert_", [smalltalk.send("hello", "__eq", [smalltalk.send("hello", "_yourself", [])])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_yourself", []), "__eq", ["hello"])]); smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq", [(0)])]); return self;} }), smalltalk.StringTest); smalltalk.addClass('DictionaryTest', smalltalk.TestCase, [], 'Kernel-Tests'); smalltalk.addMethod( '_testPrintString', smalltalk.method({ selector: 'testPrintString', fn: function (){ var self=this; smalltalk.send(self, "_assert_equals_", [unescape("a%20Dictionary%28%27firstname%27%20-%3E%20%27James%27%20%2C%20%27lastname%27%20-%3E%20%27Bond%27%29"), (function($rec){smalltalk.send($rec, "_at_put_", ["firstname", "James"]);smalltalk.send($rec, "_at_put_", ["lastname", "Bond"]);return smalltalk.send($rec, "_printString", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []))]); return self;} }), smalltalk.DictionaryTest); smalltalk.addMethod( '_testEquality', smalltalk.method({ selector: 'testEquality', fn: function (){ var self=this; var d1=nil; var d2=nil; smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])])]); d1=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])); d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])); smalltalk.send(self, "_assert_", [smalltalk.send(d1, "__eq", [d2])]); d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (3)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])); smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]); d2=(function($rec){smalltalk.send($rec, "_at_put_", [(2), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])); smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]); d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);smalltalk.send($rec, "_at_put_", [(3), (4)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])); smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]); return self;} }), smalltalk.DictionaryTest); smalltalk.addMethod( '_testDynamicDictionaries', smalltalk.method({ selector: 'testDynamicDictionaries', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.Dictionary._fromPairs_([smalltalk.send((1), "__minus_gt", ["hello"]),smalltalk.send((2), "__minus_gt", ["world"])]), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_with_with_", [smalltalk.send((1), "__minus_gt", ["hello"]), smalltalk.send((2), "__minus_gt", ["world"])])])]); return self;} }), smalltalk.DictionaryTest); smalltalk.addClass('BooleanTest', smalltalk.TestCase, [], 'Kernel-Tests'); smalltalk.addMethod( '_testLogic', smalltalk.method({ selector: 'testLogic', fn: function (){ var self=this; (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_&", [true])]);smalltalk.send($rec, "_deny_", [smalltalk.send(true, "_&", [false])]);smalltalk.send($rec, "_deny_", [smalltalk.send(false, "_&", [true])]);return smalltalk.send($rec, "_deny_", [smalltalk.send(false, "_&", [false])]);})(self); (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_|", [true])]);smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_|", [false])]);smalltalk.send($rec, "_assert_", [smalltalk.send(false, "_|", [true])]);return smalltalk.send($rec, "_deny_", [smalltalk.send(false, "_|", [false])]);})(self); (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_&", [(1) > (0)])]);smalltalk.send($rec, "_deny_", [smalltalk.send((1) > (0), "_&", [false])]);return smalltalk.send($rec, "_deny_", [smalltalk.send((1) > (0), "_&", [(1) > (2)])]);})(self); (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(false, "_|", [(1) > (0)])]);smalltalk.send($rec, "_assert_", [smalltalk.send((1) > (0), "_|", [false])]);return smalltalk.send($rec, "_assert_", [smalltalk.send((1) > (0), "_|", [(1) > (2)])]);})(self); return self;} }), smalltalk.BooleanTest); smalltalk.addMethod( '_testEquality', smalltalk.method({ selector: 'testEquality', fn: function (){ var self=this; smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq", [false])]); smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [(0)])]); smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq", [false])]); smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [""])]); smalltalk.send(self, "_assert_", [smalltalk.send(true, "__eq", [true])]); smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [true])]); smalltalk.send(self, "_deny_", [smalltalk.send(true, "__eq", [false])]); smalltalk.send(self, "_assert_", [smalltalk.send(false, "__eq", [false])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(true, "_yourself", []), "__eq", [true])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(true, "_yourself", []), "__eq", [smalltalk.send(true, "_yourself", [])])]); return self;} }), smalltalk.BooleanTest); smalltalk.addMethod( '_testLogicKeywords', smalltalk.method({ selector: 'testLogicKeywords', fn: function (){ var self=this; (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_and_", [(function(){return true;})])]);smalltalk.send($rec, "_deny_", [smalltalk.send(true, "_and_", [(function(){return false;})])]);smalltalk.send($rec, "_deny_", [smalltalk.send(false, "_and_", [(function(){return true;})])]);return smalltalk.send($rec, "_deny_", [smalltalk.send(false, "_and_", [(function(){return false;})])]);})(self); (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_or_", [(function(){return true;})])]);smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_or_", [(function(){return false;})])]);smalltalk.send($rec, "_assert_", [smalltalk.send(false, "_or_", [(function(){return true;})])]);return smalltalk.send($rec, "_deny_", [smalltalk.send(false, "_or_", [(function(){return false;})])]);})(self); (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(true, "_and_", [(function(){return (1) > (0);})])]);smalltalk.send($rec, "_deny_", [smalltalk.send((1) > (0), "_and_", [(function(){return false;})])]);return smalltalk.send($rec, "_deny_", [smalltalk.send((1) > (0), "_and_", [(function(){return (1) > (2);})])]);})(self); (function($rec){smalltalk.send($rec, "_assert_", [smalltalk.send(false, "_or_", [(function(){return (1) > (0);})])]);smalltalk.send($rec, "_assert_", [smalltalk.send((1) > (0), "_or_", [(function(){return false;})])]);return smalltalk.send($rec, "_assert_", [smalltalk.send((1) > (0), "_or_", [(function(){return (1) > (2);})])]);})(self); return self;} }), smalltalk.BooleanTest); smalltalk.addMethod( '_testIfTrueIfFalse', smalltalk.method({ selector: 'testIfTrueIfFalse', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = true).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "alternative block";})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return "alternative block";})])), "__eq", ["alternative block"])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = true).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return "alternative block";})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return "alternative block";})])), "__eq", [nil])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = false).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "alternative block";})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return "alternative block";})])), "__eq", [nil])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = false).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return "alternative block";})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return "alternative block";})])), "__eq", ["alternative block"])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = false).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "alternative block";})() : (function(){return "alternative block2";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "alternative block";}), (function(){return "alternative block2";})])), "__eq", ["alternative block2"])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = false).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return "alternative block";})() : (function(){return "alternative block2";})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return "alternative block";}), (function(){return "alternative block2";})])), "__eq", ["alternative block"])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = true).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "alternative block";})() : (function(){return "alternative block2";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "alternative block";}), (function(){return "alternative block2";})])), "__eq", ["alternative block"])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = true).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return "alternative block";})() : (function(){return "alternative block2";})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){return "alternative block";}), (function(){return "alternative block2";})])), "__eq", ["alternative block2"])]); return self;} }), smalltalk.BooleanTest); smalltalk.addClass('NumberTest', smalltalk.TestCase, [], 'Kernel-Tests'); smalltalk.addMethod( '_testEquality', smalltalk.method({ selector: 'testEquality', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send((1), "__eq", [(1)])]); smalltalk.send(self, "_assert_", [smalltalk.send((0), "__eq", [(0)])]); smalltalk.send(self, "_deny_", [smalltalk.send((1), "__eq", [(0)])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_yourself", []), "__eq", [(1)])]); smalltalk.send(self, "_assert_", [smalltalk.send((1), "__eq", [smalltalk.send((1), "_yourself", [])])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_yourself", []), "__eq", [smalltalk.send((1), "_yourself", [])])]); smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq", [false])]); smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [(0)])]); smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq", [(0)])]); smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq", [""])]); return self;} }), smalltalk.NumberTest); smalltalk.addMethod( '_testArithmetic', smalltalk.method({ selector: 'testArithmetic', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send((1.5) + (1), "__eq", [(2.5)])]); smalltalk.send(self, "_assert_", [smalltalk.send((2) - (1), "__eq", [(1)])]); smalltalk.send(self, "_assert_", [smalltalk.send((-2) - (1), "__eq", [(-3)])]); smalltalk.send(self, "_assert_", [smalltalk.send((12) / (2), "__eq", [(6)])]); smalltalk.send(self, "_assert_", [smalltalk.send((3) * (4), "__eq", [(12)])]); smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = (1) + (2)).klass === smalltalk.Number) ? $receiver *(3) : smalltalk.send($receiver, "__star", [(3)])), "__eq", [(9)])]); smalltalk.send(self, "_assert_", [smalltalk.send((1) + (2) * (3), "__eq", [(7)])]); return self;} }), smalltalk.NumberTest); smalltalk.addMethod( '_testRounded', smalltalk.method({ selector: 'testRounded', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "_rounded", []), "__eq", [(3)])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.212), "_rounded", []), "__eq", [(3)])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.51), "_rounded", []), "__eq", [(4)])]); return self;} }), smalltalk.NumberTest); smalltalk.addMethod( '_testNegated', smalltalk.method({ selector: 'testNegated', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "_negated", []), "__eq", [(-3)])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((-3), "_negated", []), "__eq", [(3)])]); return self;} }), smalltalk.NumberTest); smalltalk.addMethod( '_testComparison', smalltalk.method({ selector: 'testComparison', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [(3) > (2)]); smalltalk.send(self, "_assert_", [(2) < (3)]); smalltalk.send(self, "_deny_", [(3) < (2)]); smalltalk.send(self, "_deny_", [(2) > (3)]); smalltalk.send(self, "_assert_", [(3) >= (3)]); smalltalk.send(self, "_assert_", [(3.1) >= (3)]); smalltalk.send(self, "_assert_", [(3) <= (3)]); smalltalk.send(self, "_assert_", [(3) <= (3.1)]); return self;} }), smalltalk.NumberTest); smalltalk.addMethod( '_testTruncated', smalltalk.method({ selector: 'testTruncated', fn: function (){ var self=this; smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "_truncated", []), "__eq", [(3)])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.212), "_truncated", []), "__eq", [(3)])]); smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.51), "_truncated", []), "__eq", [(3)])]); return self;} }), smalltalk.NumberTest); smalltalk.addMethod( '_testPrintShowingDecimalPlaces', smalltalk.method({ selector: 'testPrintShowingDecimalPlaces', fn: function (){ var self=this; smalltalk.send(self, "_assert_equals_", ["23.00", smalltalk.send((23), "_printShowingDecimalPlaces_", [(2)])]); smalltalk.send(self, "_assert_equals_", ["23.57", smalltalk.send((23.5698), "_printShowingDecimalPlaces_", [(2)])]); smalltalk.send(self, "_assert_equals_", [unescape("-234.56700"), smalltalk.send(smalltalk.send((234.567), "_negated", []), "_printShowingDecimalPlaces_", [(5)])]); smalltalk.send(self, "_assert_equals_", ["23", smalltalk.send((23.4567), "_printShowingDecimalPlaces_", [(0)])]); smalltalk.send(self, "_assert_equals_", ["24", smalltalk.send((23.5567), "_printShowingDecimalPlaces_", [(0)])]); smalltalk.send(self, "_assert_equals_", [unescape("-23"), smalltalk.send(smalltalk.send((23.4567), "_negated", []), "_printShowingDecimalPlaces_", [(0)])]); smalltalk.send(self, "_assert_equals_", [unescape("-24"), smalltalk.send(smalltalk.send((23.5567), "_negated", []), "_printShowingDecimalPlaces_", [(0)])]); smalltalk.send(self, "_assert_equals_", ["100000000.0", smalltalk.send((100000000), "_printShowingDecimalPlaces_", [(1)])]); smalltalk.send(self, "_assert_equals_", ["0.98000", smalltalk.send((0.98), "_printShowingDecimalPlaces_", [(5)])]); smalltalk.send(self, "_assert_equals_", [unescape("-0.98"), smalltalk.send(smalltalk.send((0.98), "_negated", []), "_printShowingDecimalPlaces_", [(2)])]); smalltalk.send(self, "_assert_equals_", ["2.57", smalltalk.send((2.567), "_printShowingDecimalPlaces_", [(2)])]); smalltalk.send(self, "_assert_equals_", [unescape("-2.57"), smalltalk.send((-2.567), "_printShowingDecimalPlaces_", [(2)])]); smalltalk.send(self, "_assert_equals_", ["0.00", smalltalk.send((0), "_printShowingDecimalPlaces_", [(2)])]); return self;} }), smalltalk.NumberTest);