resin 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. data/amber/css/amber-normalize.css +73 -73
  2. data/amber/css/amber-normalize.less +1 -1
  3. data/amber/css/amber.css +106 -106
  4. data/amber/css/helios.css +242 -0
  5. data/amber/images/hsplitter.png +0 -0
  6. data/amber/images/vsplitter.png +0 -0
  7. data/amber/js/Benchfib.deploy.js +116 -38
  8. data/amber/js/Benchfib.js +120 -42
  9. data/amber/js/Canvas.deploy.js +674 -403
  10. data/amber/js/Canvas.js +682 -411
  11. data/amber/js/Compiler-AST.deploy.js +1150 -0
  12. data/amber/js/Compiler-AST.js +1591 -0
  13. data/amber/js/Compiler-Core.deploy.js +1562 -0
  14. data/amber/js/Compiler-Core.js +1972 -0
  15. data/amber/js/Compiler-Exceptions.deploy.js +114 -0
  16. data/amber/js/Compiler-Exceptions.js +161 -0
  17. data/amber/js/Compiler-IR.deploy.js +2326 -0
  18. data/amber/js/Compiler-IR.js +3146 -0
  19. data/amber/js/Compiler-Inlining.deploy.js +1147 -0
  20. data/amber/js/Compiler-Inlining.js +1514 -0
  21. data/amber/js/Compiler-Semantic.deploy.js +1207 -0
  22. data/amber/js/Compiler-Semantic.js +1628 -0
  23. data/amber/js/Compiler-Tests.deploy.js +646 -60
  24. data/amber/js/Compiler-Tests.js +843 -82
  25. data/amber/js/Compiler.deploy.js +1097 -159
  26. data/amber/js/Compiler.js +1414 -161
  27. data/amber/js/Examples.deploy.js +31 -15
  28. data/amber/js/Examples.js +33 -17
  29. data/amber/js/Helios-Announcements.deploy.js +127 -0
  30. data/amber/js/Helios-Announcements.js +157 -0
  31. data/amber/js/Helios-Browser.deploy.js +1473 -0
  32. data/amber/js/Helios-Browser.js +1953 -0
  33. data/amber/js/Helios-Commands.deploy.js +403 -0
  34. data/amber/js/Helios-Commands.js +563 -0
  35. data/amber/js/Helios-Core.deploy.js +1070 -0
  36. data/amber/js/Helios-Core.js +1445 -0
  37. data/amber/js/Helios-Environments.deploy.js +132 -0
  38. data/amber/js/Helios-Environments.js +179 -0
  39. data/amber/js/Helios-Inspector.deploy.js +855 -0
  40. data/amber/js/Helios-Inspector.js +1155 -0
  41. data/amber/js/Helios-KeyBindings.deploy.js +753 -0
  42. data/amber/js/Helios-KeyBindings.js +1023 -0
  43. data/amber/js/Helios-Layout.deploy.js +383 -0
  44. data/amber/js/Helios-Layout.js +523 -0
  45. data/amber/js/Helios-Workspace.deploy.js +799 -0
  46. data/amber/js/Helios-Workspace.js +1074 -0
  47. data/amber/js/IDE.deploy.js +2541 -1490
  48. data/amber/js/IDE.js +2721 -1660
  49. data/amber/js/Importer-Exporter.deploy.js +671 -0
  50. data/amber/js/Importer-Exporter.js +816 -0
  51. data/amber/js/Kernel-Announcements.deploy.js +137 -20
  52. data/amber/js/Kernel-Announcements.js +176 -22
  53. data/amber/js/Kernel-Classes.deploy.js +555 -168
  54. data/amber/js/Kernel-Classes.js +662 -205
  55. data/amber/js/Kernel-Collections.deploy.js +1403 -618
  56. data/amber/js/Kernel-Collections.js +1545 -690
  57. data/amber/js/Kernel-Exceptions.deploy.js +109 -45
  58. data/amber/js/Kernel-Exceptions.js +123 -49
  59. data/amber/js/Kernel-Methods.deploy.js +196 -81
  60. data/amber/js/Kernel-Methods.js +214 -89
  61. data/amber/js/Kernel-Objects.deploy.js +1542 -1117
  62. data/amber/js/Kernel-Objects.js +1593 -1148
  63. data/amber/js/Kernel-Tests.deploy.js +1725 -772
  64. data/amber/js/Kernel-Tests.js +2301 -1123
  65. data/amber/js/Kernel-Transcript.deploy.js +23 -25
  66. data/amber/js/Kernel-Transcript.js +24 -26
  67. data/amber/js/SUnit.deploy.js +204 -131
  68. data/amber/js/SUnit.js +222 -139
  69. data/amber/js/Spaces.deploy.js +240 -0
  70. data/amber/js/Spaces.js +326 -0
  71. data/amber/js/amber.js +26 -7
  72. data/amber/js/boot.js +65 -47
  73. data/amber/js/init.js +1 -1
  74. data/amber/js/lib/CodeMirror/amber.css +21 -21
  75. data/amber/js/lib/CodeMirror/codemirror.css +119 -13
  76. data/amber/js/lib/CodeMirror/codemirror.js +2219 -1220
  77. data/amber/js/lib/CodeMirror/smalltalk.js +134 -129
  78. data/amber/js/lib/bootstrap/css/bootstrap.css +5837 -0
  79. data/amber/js/lib/bootstrap/css/bootstrap.min.css +841 -0
  80. data/amber/js/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
  81. data/amber/js/lib/bootstrap/img/glyphicons-halflings.png +0 -0
  82. data/amber/js/lib/bootstrap/js/bootstrap.js +2038 -0
  83. data/amber/js/lib/bootstrap/js/bootstrap.min.js +7 -0
  84. data/amber/js/lib/jQuery/jquery-1.8.2.min.js +2 -0
  85. data/amber/js/lib/jQuery/jquery-ui-1.8.24.custom.min.js +125 -0
  86. data/amber/st/Compiler-AST.st +505 -0
  87. data/amber/st/Compiler-Core.st +835 -0
  88. data/amber/st/Compiler-Exceptions.st +87 -0
  89. data/amber/st/Compiler-IR.st +1097 -0
  90. data/amber/st/Compiler-Inlining.st +650 -0
  91. data/amber/st/Compiler-Semantic.st +558 -0
  92. data/amber/st/Compiler-Tests.st +285 -381
  93. data/amber/st/Compiler.st +725 -2
  94. data/amber/st/Helios-Announcements.st +104 -0
  95. data/amber/st/Helios-Browser.st +708 -0
  96. data/amber/st/Helios-Commands.st +223 -0
  97. data/amber/st/Helios-Core.st +532 -0
  98. data/amber/st/Helios-Environments.st +98 -0
  99. data/amber/st/Helios-Inspector.st +367 -0
  100. data/amber/st/Helios-KeyBindings.st +337 -0
  101. data/amber/st/Helios-Layout.st +199 -0
  102. data/amber/st/Helios-Workspace.st +367 -0
  103. data/amber/st/IDE.st +75 -53
  104. data/amber/st/Importer-Exporter.st +386 -0
  105. data/amber/st/Kernel-Announcements.st +92 -0
  106. data/amber/st/Kernel-Classes.st +137 -15
  107. data/amber/st/Kernel-Collections.st +137 -47
  108. data/amber/st/Kernel-Exceptions.st +14 -0
  109. data/amber/st/Kernel-Methods.st +9 -1
  110. data/amber/st/Kernel-Objects.st +29 -5
  111. data/amber/st/Kernel-Tests.st +545 -199
  112. data/amber/st/SUnit.st +10 -0
  113. data/amber/st/Spaces.st +142 -0
  114. data/lib/resin/app.rb +1 -1
  115. metadata +86 -31
  116. data/amber/js/lib/jQuery/jquery-1.4.4.min.js +0 -167
  117. data/amber/js/lib/jQuery/jquery-1.6.4.min.js +0 -4
@@ -1,62 +1,4 @@
1
1
  smalltalk.addPackage('Kernel-Tests', {});
2
- smalltalk.addClass('ArrayTest', smalltalk.TestCase, [], 'Kernel-Tests');
3
- smalltalk.addMethod(
4
- "_testAtIfAbsent",
5
- smalltalk.method({
6
- selector: "testAtIfAbsent",
7
- category: 'testing',
8
- fn: function (){
9
- var self=this;
10
- var array=nil;
11
- (array=["hello", "world"]);
12
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(array, "_at_", [(1)]), "hello"]);
13
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(array, "_at_", [(2)]), "world"]);
14
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(array, "_at_ifAbsent_", [(2), (function(){return "not found";})]), "world"]);
15
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(array, "_at_ifAbsent_", [(0), (function(){return "not found";})]), "not found"]);
16
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(array, "_at_ifAbsent_", [(-10), (function(){return "not found";})]), "not found"]);
17
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(array, "_at_ifAbsent_", [(3), (function(){return "not found";})]), "not found"]);
18
- return self;},
19
- args: [],
20
- source: "testAtIfAbsent\x0a\x09| array |\x0a\x09array := #('hello' 'world').\x0a\x09self assert: (array at: 1) equals: 'hello'.\x0a\x09self assert: (array at: 2) equals: 'world'.\x0a\x09self assert: (array at: 2 ifAbsent: ['not found']) equals: 'world'.\x0a\x09self assert: (array at: 0 ifAbsent: ['not found']) equals: 'not found'.\x0a\x09self assert: (array at: -10 ifAbsent: ['not found']) equals: 'not found'.\x0a\x09self assert: (array at: 3 ifAbsent: ['not found']) equals: 'not found'.",
21
- messageSends: ["assert:equals:", "at:", "at:ifAbsent:"],
22
- referencedClasses: []
23
- }),
24
- smalltalk.ArrayTest);
25
-
26
- smalltalk.addMethod(
27
- "_testFirstN",
28
- smalltalk.method({
29
- selector: "testFirstN",
30
- category: 'testing',
31
- fn: function (){
32
- var self=this;
33
- smalltalk.send(self, "_assert_equals_", [[(1),(2),(3)], smalltalk.send([(1),(2),(3),(4),(5)], "_first_", [(3)])]);
34
- return self;},
35
- args: [],
36
- source: "testFirstN\x0a\x09self assert: {1. 2. 3} equals: ({1. 2. 3. 4. 5} first: 3).",
37
- messageSends: ["assert:equals:", "first:"],
38
- referencedClasses: []
39
- }),
40
- smalltalk.ArrayTest);
41
-
42
- smalltalk.addMethod(
43
- "_testIfEmpty",
44
- smalltalk.method({
45
- selector: "testIfEmpty",
46
- category: 'testing',
47
- fn: function (){
48
- var self=this;
49
- smalltalk.send(self, "_assert_equals_", ["zork", smalltalk.send("", "_ifEmpty_", [(function(){return "zork";})])]);
50
- return self;},
51
- args: [],
52
- source: "testIfEmpty\x0a\x09self assert: 'zork' equals: ( '' ifEmpty: ['zork'] )",
53
- messageSends: ["assert:equals:", "ifEmpty:"],
54
- referencedClasses: []
55
- }),
56
- smalltalk.ArrayTest);
57
-
58
-
59
-
60
2
  smalltalk.addClass('BlockClosureTest', smalltalk.TestCase, [], 'Kernel-Tests');
61
3
  smalltalk.addMethod(
62
4
  "_testCompiledSource",
@@ -65,8 +7,10 @@ selector: "testCompiledSource",
65
7
  category: 'tests',
66
8
  fn: function (){
67
9
  var self=this;
68
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((function(){return (1) + (1);}), "_compiledSource", []), "_includesSubString_", ["function"])]);
69
- return self;},
10
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((function(){
11
+ return smalltalk.send((1),"__plus",[(1)]);
12
+ }),"_compiledSource",[]),"_includesSubString_",["function"])]);
13
+ return self},
70
14
  args: [],
71
15
  source: "testCompiledSource\x0a\x09self assert: ([1+1] compiledSource includesSubString: 'function')",
72
16
  messageSends: ["assert:", "includesSubString:", "compiledSource", "+"],
@@ -81,8 +25,12 @@ selector: "testEnsure",
81
25
  category: 'tests',
82
26
  fn: function (){
83
27
  var self=this;
84
- smalltalk.send(self, "_assert_", [smalltalk.send((function(){return smalltalk.send((smalltalk.Error || Error), "_new", []);}), "_ensure_", [(function(){return true;})])]);
85
- return self;},
28
+ smalltalk.send(self,"_assert_",[smalltalk.send((function(){
29
+ return smalltalk.send((smalltalk.Error || Error),"_new",[]);
30
+ }),"_ensure_",[(function(){
31
+ return true;
32
+ })])]);
33
+ return self},
86
34
  args: [],
87
35
  source: "testEnsure\x0a\x09self assert: ([Error new] ensure: [true])",
88
36
  messageSends: ["assert:", "ensure:", "new"],
@@ -97,9 +45,11 @@ selector: "testNumArgs",
97
45
  category: 'tests',
98
46
  fn: function (){
99
47
  var self=this;
100
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(){return nil;}), "_numArgs", []), (0)]);
101
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(a, b){return nil;}), "_numArgs", []), (2)]);
102
- return self;},
48
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(){
49
+ }),"_numArgs",[]),(0)]);
50
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(a,b){
51
+ }),"_numArgs",[]),(2)]);
52
+ return self},
103
53
  args: [],
104
54
  source: "testNumArgs\x0a\x09self assert: [] numArgs equals: 0.\x0a\x09self assert: [:a :b | ] numArgs equals: 2",
105
55
  messageSends: ["assert:equals:", "numArgs"],
@@ -114,8 +64,12 @@ selector: "testOnDo",
114
64
  category: 'tests',
115
65
  fn: function (){
116
66
  var self=this;
117
- smalltalk.send(self, "_assert_", [smalltalk.send((function(){return smalltalk.send(smalltalk.send((smalltalk.Error || Error), "_new", []), "_signal", []);}), "_on_do_", [(smalltalk.Error || Error), (function(ex){return true;})])]);
118
- return self;},
67
+ smalltalk.send(self,"_assert_",[smalltalk.send((function(){
68
+ return smalltalk.send(smalltalk.send((smalltalk.Error || Error),"_new",[]),"_signal",[]);
69
+ }),"_on_do_",[(smalltalk.Error || Error),(function(ex){
70
+ return true;
71
+ })])]);
72
+ return self},
119
73
  args: [],
120
74
  source: "testOnDo\x0a\x09self assert: ([Error new signal] on: Error do: [:ex | true])",
121
75
  messageSends: ["assert:", "on:do:", "signal", "new"],
@@ -130,11 +84,19 @@ selector: "testValue",
130
84
  category: 'tests',
131
85
  fn: function (){
132
86
  var self=this;
133
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(){return (1) + (1);}), "_value", []), (2)]);
134
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(x){return ((($receiver = x).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));}), "_value_", [(2)]), (3)]);
135
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(x, y){return ((($receiver = x).klass === smalltalk.Number) ? $receiver *y : smalltalk.send($receiver, "__star", [y]));}), "_value_value_", [(2), (4)]), (8)]);
136
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(a, b, c){return (1);}), "_value", []), (1)]);
137
- return self;},
87
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(){
88
+ return smalltalk.send((1),"__plus",[(1)]);
89
+ }),"_value",[]),(2)]);
90
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(x){
91
+ return smalltalk.send(x,"__plus",[(1)]);
92
+ }),"_value_",[(2)]),(3)]);
93
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(x,y){
94
+ return smalltalk.send(x,"__star",[y]);
95
+ }),"_value_value_",[(2),(4)]),(8)]);
96
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(a,b,c){
97
+ return (1);
98
+ }),"_value",[]),(1)]);
99
+ return self},
138
100
  args: [],
139
101
  source: "testValue\x0a\x09self assert: ([1+1] value) equals: 2.\x0a\x09self assert: ([:x | x +1] value: 2) equals: 3.\x0a\x09self assert: ([:x :y | x*y] value: 2 value: 4) equals: 8. \x0a\x0a\x09\x22Arguments are optional in Amber. This isn't ANSI compliant.\x22\x0a\x0a\x09self assert: ([:a :b :c | 1] value) equals: 1",
140
102
  messageSends: ["assert:equals:", "value", "+", "value:", "value:value:", "*"],
@@ -149,10 +111,16 @@ selector: "testValueWithPossibleArguments",
149
111
  category: 'tests',
150
112
  fn: function (){
151
113
  var self=this;
152
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(){return (1);}), "_valueWithPossibleArguments_", [[(3), (4)]]), (1)]);
153
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(a){return ((($receiver = a).klass === smalltalk.Number) ? $receiver +(4) : smalltalk.send($receiver, "__plus", [(4)]));}), "_valueWithPossibleArguments_", [[(3), (4)]]), (7)]);
154
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((function(a, b){return ((($receiver = a).klass === smalltalk.Number) ? $receiver +b : smalltalk.send($receiver, "__plus", [b]));}), "_valueWithPossibleArguments_", [[(3), (4), (5)]]), (7)]);
155
- return self;},
114
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(){
115
+ return (1);
116
+ }),"_valueWithPossibleArguments_",[[(3), (4)]]),(1)]);
117
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(a){
118
+ return smalltalk.send(a,"__plus",[(4)]);
119
+ }),"_valueWithPossibleArguments_",[[(3), (4)]]),(7)]);
120
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((function(a,b){
121
+ return smalltalk.send(a,"__plus",[b]);
122
+ }),"_valueWithPossibleArguments_",[[(3), (4), (5)]]),(7)]);
123
+ return self},
156
124
  args: [],
157
125
  source: "testValueWithPossibleArguments\x0a\x09self assert: ([1] valueWithPossibleArguments: #(3 4)) equals: 1.\x0a\x09self assert: ([:a | a + 4] valueWithPossibleArguments: #(3 4)) equals: 7.\x0a\x09self assert: ([:a :b | a + b] valueWithPossibleArguments: #(3 4 5)) equals: 7.",
158
126
  messageSends: ["assert:equals:", "valueWithPossibleArguments:", "+"],
@@ -167,17 +135,26 @@ selector: "testWhileFalse",
167
135
  category: 'tests',
168
136
  fn: function (){
169
137
  var self=this;
170
- var i=nil;
171
- (i=(0));
172
- (function(){while(!(function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
173
- smalltalk.send(self, "_assert_equals_", [i, (6)]);
174
- (i=(0));
175
- (function(){while(!(function(){(i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {}})();
176
- smalltalk.send(self, "_assert_equals_", [i, (6)]);
177
- return self;},
138
+ var i;
139
+ i=(0);
140
+ smalltalk.send((function(){
141
+ return smalltalk.send(i,"__gt",[(5)]);
142
+ }),"_whileFalse_",[(function(){
143
+ i=smalltalk.send(i,"__plus",[(1)]);
144
+ return i;
145
+ })]);
146
+ smalltalk.send(self,"_assert_equals_",[i,(6)]);
147
+ i=(0);
148
+ smalltalk.send((function(){
149
+ i=smalltalk.send(i,"__plus",[(1)]);
150
+ i;
151
+ return smalltalk.send(i,"__gt",[(5)]);
152
+ }),"_whileFalse",[]);
153
+ smalltalk.send(self,"_assert_equals_",[i,(6)]);
154
+ return self},
178
155
  args: [],
179
156
  source: "testWhileFalse\x0a\x09| i |\x0a\x09i := 0.\x0a\x09[i > 5] whileFalse: [i := i + 1].\x0a\x09self assert: i equals: 6.\x0a\x0a\x09i := 0.\x0a\x09[i := i + 1. i > 5] whileFalse.\x0a\x09self assert: i equals: 6",
180
- messageSends: ["whileFalse:", ">", "+", "assert:equals:", "whileFalse"],
157
+ messageSends: ["whileFalse:", "+", ">", "assert:equals:", "whileFalse"],
181
158
  referencedClasses: []
182
159
  }),
183
160
  smalltalk.BlockClosureTest);
@@ -189,17 +166,26 @@ selector: "testWhileTrue",
189
166
  category: 'tests',
190
167
  fn: function (){
191
168
  var self=this;
192
- var i=nil;
193
- (i=(0));
194
- (function(){while((function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
195
- smalltalk.send(self, "_assert_equals_", [i, (5)]);
196
- (i=(0));
197
- (function(){while((function(){(i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {}})();
198
- smalltalk.send(self, "_assert_equals_", [i, (5)]);
199
- return self;},
169
+ var i;
170
+ i=(0);
171
+ smalltalk.send((function(){
172
+ return smalltalk.send(i,"__lt",[(5)]);
173
+ }),"_whileTrue_",[(function(){
174
+ i=smalltalk.send(i,"__plus",[(1)]);
175
+ return i;
176
+ })]);
177
+ smalltalk.send(self,"_assert_equals_",[i,(5)]);
178
+ i=(0);
179
+ smalltalk.send((function(){
180
+ i=smalltalk.send(i,"__plus",[(1)]);
181
+ i;
182
+ return smalltalk.send(i,"__lt",[(5)]);
183
+ }),"_whileTrue",[]);
184
+ smalltalk.send(self,"_assert_equals_",[i,(5)]);
185
+ return self},
200
186
  args: [],
201
187
  source: "testWhileTrue\x0a\x09| i |\x0a\x09i := 0.\x0a\x09[i < 5] whileTrue: [i := i + 1].\x0a\x09self assert: i equals: 5.\x0a\x0a\x09i := 0.\x0a\x09[i := i + 1. i < 5] whileTrue.\x0a\x09self assert: i equals: 5",
202
- messageSends: ["whileTrue:", "<", "+", "assert:equals:", "whileTrue"],
188
+ messageSends: ["whileTrue:", "+", "<", "assert:equals:", "whileTrue"],
203
189
  referencedClasses: []
204
190
  }),
205
191
  smalltalk.BlockClosureTest);
@@ -214,17 +200,17 @@ selector: "testEquality",
214
200
  category: 'tests',
215
201
  fn: function (){
216
202
  var self=this;
217
- smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq", [false])]);
218
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [(0)])]);
219
- smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq", [false])]);
220
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [""])]);
221
- smalltalk.send(self, "_assert_", [smalltalk.send(true, "__eq", [true])]);
222
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [true])]);
223
- smalltalk.send(self, "_deny_", [smalltalk.send(true, "__eq", [false])]);
224
- smalltalk.send(self, "_assert_", [smalltalk.send(false, "__eq", [false])]);
225
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(true, "_yourself", []), "__eq", [true])]);
226
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(true, "_yourself", []), "__eq", [smalltalk.send(true, "_yourself", [])])]);
227
- return self;},
203
+ smalltalk.send(self,"_deny_",[smalltalk.send((0),"__eq",[false])]);
204
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq",[(0)])]);
205
+ smalltalk.send(self,"_deny_",[smalltalk.send("","__eq",[false])]);
206
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq",[""])]);
207
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"__eq",[true])]);
208
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq",[true])]);
209
+ smalltalk.send(self,"_deny_",[smalltalk.send(true,"__eq",[false])]);
210
+ smalltalk.send(self,"_assert_",[smalltalk.send(false,"__eq",[false])]);
211
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(true,"_yourself",[]),"__eq",[true])]);
212
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(true,"_yourself",[]),"__eq",[smalltalk.send(true,"_yourself",[])])]);
213
+ return self},
228
214
  args: [],
229
215
  source: "testEquality\x0a\x09\x22We're on top of JS...just be sure to check the basics!\x22\x0a\x0a\x09self deny: 0 = false. \x0a\x09self deny: false = 0.\x0a\x09self deny: '' = false.\x0a\x09self deny: false = ''.\x0a\x0a\x09self assert: true = true.\x0a\x09self deny: false = true.\x0a\x09self deny: true = false.\x0a\x09self assert: false = false.\x0a\x0a\x09\x22JS may do some type coercing after sending a message\x22\x0a\x09self assert: true yourself = true.\x0a\x09self assert: true yourself = true yourself",
230
216
  messageSends: ["deny:", "=", "assert:", "yourself"],
@@ -239,17 +225,17 @@ selector: "testIdentity",
239
225
  category: 'tests',
240
226
  fn: function (){
241
227
  var self=this;
242
- smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq_eq", [false])]);
243
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq_eq", [(0)])]);
244
- smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq_eq", [false])]);
245
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq_eq", [""])]);
246
- smalltalk.send(self, "_assert_", [smalltalk.send(true, "__eq_eq", [true])]);
247
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq_eq", [true])]);
248
- smalltalk.send(self, "_deny_", [smalltalk.send(true, "__eq_eq", [false])]);
249
- smalltalk.send(self, "_assert_", [smalltalk.send(false, "__eq_eq", [false])]);
250
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(true, "_yourself", []), "__eq_eq", [true])]);
251
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(true, "_yourself", []), "__eq_eq", [smalltalk.send(true, "_yourself", [])])]);
252
- return self;},
228
+ smalltalk.send(self,"_deny_",[smalltalk.send((0),"__eq_eq",[false])]);
229
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq_eq",[(0)])]);
230
+ smalltalk.send(self,"_deny_",[smalltalk.send("","__eq_eq",[false])]);
231
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq_eq",[""])]);
232
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"__eq_eq",[true])]);
233
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq_eq",[true])]);
234
+ smalltalk.send(self,"_deny_",[smalltalk.send(true,"__eq_eq",[false])]);
235
+ smalltalk.send(self,"_assert_",[smalltalk.send(false,"__eq_eq",[false])]);
236
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(true,"_yourself",[]),"__eq_eq",[true])]);
237
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(true,"_yourself",[]),"__eq_eq",[smalltalk.send(true,"_yourself",[])])]);
238
+ return self},
253
239
  args: [],
254
240
  source: "testIdentity\x0a\x09\x22We're on top of JS...just be sure to check the basics!\x22\x0a\x0a\x09self deny: 0 == false. \x0a\x09self deny: false == 0.\x0a\x09self deny: '' == false.\x0a\x09self deny: false == ''.\x0a\x0a\x09self assert: true == true.\x0a\x09self deny: false == true.\x0a\x09self deny: true == false.\x0a\x09self assert: false == false.\x0a\x0a\x09\x22JS may do some type coercing after sending a message\x22\x0a\x09self assert: true yourself == true.\x0a\x09self assert: true yourself == true yourself",
255
241
  messageSends: ["deny:", "==", "assert:", "yourself"],
@@ -264,15 +250,48 @@ selector: "testIfTrueIfFalse",
264
250
  category: 'tests',
265
251
  fn: function (){
266
252
  var self=this;
267
- 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"])]);
268
- 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])]);
269
- 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])]);
270
- 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"])]);
271
- 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"])]);
272
- 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"])]);
273
- 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"])]);
274
- 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"])]);
275
- return self;},
253
+ var $1,$2,$3,$4,$5,$6,$7,$8;
254
+ if(smalltalk.assert(true)){
255
+ $1="alternative block";
256
+ };
257
+ smalltalk.send(self,"_assert_",[smalltalk.send($1,"__eq",["alternative block"])]);
258
+ if(! smalltalk.assert(true)){
259
+ $2="alternative block";
260
+ };
261
+ smalltalk.send(self,"_assert_",[smalltalk.send($2,"__eq",[nil])]);
262
+ if(smalltalk.assert(false)){
263
+ $3="alternative block";
264
+ };
265
+ smalltalk.send(self,"_assert_",[smalltalk.send($3,"__eq",[nil])]);
266
+ if(! smalltalk.assert(false)){
267
+ $4="alternative block";
268
+ };
269
+ smalltalk.send(self,"_assert_",[smalltalk.send($4,"__eq",["alternative block"])]);
270
+ if(smalltalk.assert(false)){
271
+ $5="alternative block";
272
+ } else {
273
+ $5="alternative block2";
274
+ };
275
+ smalltalk.send(self,"_assert_",[smalltalk.send($5,"__eq",["alternative block2"])]);
276
+ if(smalltalk.assert(false)){
277
+ $6="alternative block2";
278
+ } else {
279
+ $6="alternative block";
280
+ };
281
+ smalltalk.send(self,"_assert_",[smalltalk.send($6,"__eq",["alternative block"])]);
282
+ if(smalltalk.assert(true)){
283
+ $7="alternative block";
284
+ } else {
285
+ $7="alternative block2";
286
+ };
287
+ smalltalk.send(self,"_assert_",[smalltalk.send($7,"__eq",["alternative block"])]);
288
+ if(smalltalk.assert(true)){
289
+ $8="alternative block2";
290
+ } else {
291
+ $8="alternative block";
292
+ };
293
+ smalltalk.send(self,"_assert_",[smalltalk.send($8,"__eq",["alternative block2"])]);
294
+ return self},
276
295
  args: [],
277
296
  source: "testIfTrueIfFalse\x0a \x0a\x09self assert: (true ifTrue: ['alternative block']) = 'alternative block'.\x0a\x09self assert: (true ifFalse: ['alternative block']) = nil.\x0a\x0a\x09self assert: (false ifTrue: ['alternative block']) = nil.\x0a\x09self assert: (false ifFalse: ['alternative block']) = 'alternative block'.\x0a\x0a\x09self assert: (false ifTrue: ['alternative block'] ifFalse: ['alternative block2']) = 'alternative block2'.\x0a\x09self assert: (false ifFalse: ['alternative block'] ifTrue: ['alternative block2']) = 'alternative block'.\x0a\x0a\x09self assert: (true ifTrue: ['alternative block'] ifFalse: ['alternative block2']) = 'alternative block'.\x0a\x09self assert: (true ifFalse: ['alternative block'] ifTrue: ['alternative block2']) = 'alternative block2'.",
278
297
  messageSends: ["assert:", "=", "ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:"],
@@ -287,11 +306,22 @@ selector: "testLogic",
287
306
  category: 'tests',
288
307
  fn: function (){
289
308
  var self=this;
290
- (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);
291
- (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);
292
- (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);
293
- (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);
294
- return self;},
309
+ var $1,$2,$3,$4;
310
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_&",[true])]);
311
+ smalltalk.send(self,"_deny_",[smalltalk.send(true,"_&",[false])]);
312
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"_&",[true])]);
313
+ $1=smalltalk.send(self,"_deny_",[smalltalk.send(false,"_&",[false])]);
314
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_|",[true])]);
315
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_|",[false])]);
316
+ smalltalk.send(self,"_assert_",[smalltalk.send(false,"_|",[true])]);
317
+ $2=smalltalk.send(self,"_deny_",[smalltalk.send(false,"_|",[false])]);
318
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_&",[smalltalk.send((1),"__gt",[(0)])])]);
319
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_&",[false])]);
320
+ $3=smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_&",[smalltalk.send((1),"__gt",[(2)])])]);
321
+ smalltalk.send(self,"_assert_",[smalltalk.send(false,"_|",[smalltalk.send((1),"__gt",[(0)])])]);
322
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_|",[false])]);
323
+ $4=smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_|",[smalltalk.send((1),"__gt",[(2)])])]);
324
+ return self},
295
325
  args: [],
296
326
  source: "testLogic\x0a \x0a\x09\x22Trivial logic table\x22\x0a\x09self assert: (true & true); deny: (true & false); deny: (false & true); deny: (false & false).\x0a\x09self assert: (true | true); assert: (true | false); assert: (false | true); deny: (false | false).\x0a \x22Checking that expressions work fine too\x22\x0a\x09self assert: (true & (1 > 0)); deny: ((1 > 0) & false); deny: ((1 > 0) & (1 > 2)).\x0a self assert: (false | (1 > 0)); assert: ((1 > 0) | false); assert: ((1 > 0) | (1 > 2))",
297
327
  messageSends: ["assert:", "&", "deny:", "|", ">"],
@@ -306,11 +336,50 @@ selector: "testLogicKeywords",
306
336
  category: 'tests',
307
337
  fn: function (){
308
338
  var self=this;
309
- (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);
310
- (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);
311
- (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);
312
- (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);
313
- return self;},
339
+ var $1,$2,$3,$4;
340
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_and_",[(function(){
341
+ return true;
342
+ })])]);
343
+ smalltalk.send(self,"_deny_",[smalltalk.send(true,"_and_",[(function(){
344
+ return false;
345
+ })])]);
346
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"_and_",[(function(){
347
+ return true;
348
+ })])]);
349
+ $1=smalltalk.send(self,"_deny_",[smalltalk.send(false,"_and_",[(function(){
350
+ return false;
351
+ })])]);
352
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_or_",[(function(){
353
+ return true;
354
+ })])]);
355
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_or_",[(function(){
356
+ return false;
357
+ })])]);
358
+ smalltalk.send(self,"_assert_",[smalltalk.send(false,"_or_",[(function(){
359
+ return true;
360
+ })])]);
361
+ $2=smalltalk.send(self,"_deny_",[smalltalk.send(false,"_or_",[(function(){
362
+ return false;
363
+ })])]);
364
+ smalltalk.send(self,"_assert_",[smalltalk.send(true,"_and_",[(function(){
365
+ return smalltalk.send((1),"__gt",[(0)]);
366
+ })])]);
367
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_and_",[(function(){
368
+ return false;
369
+ })])]);
370
+ $3=smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_and_",[(function(){
371
+ return smalltalk.send((1),"__gt",[(2)]);
372
+ })])]);
373
+ smalltalk.send(self,"_assert_",[smalltalk.send(false,"_or_",[(function(){
374
+ return smalltalk.send((1),"__gt",[(0)]);
375
+ })])]);
376
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_or_",[(function(){
377
+ return false;
378
+ })])]);
379
+ $4=smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"__gt",[(0)]),"_or_",[(function(){
380
+ return smalltalk.send((1),"__gt",[(2)]);
381
+ })])]);
382
+ return self},
314
383
  args: [],
315
384
  source: "testLogicKeywords\x0a \x0a\x09\x22Trivial logic table\x22\x0a\x09self \x0a\x09\x09assert: (true and: [ true]); \x0a\x09\x09deny: (true and: [ false ]); \x0a\x09\x09deny: (false and: [ true ]); \x0a\x09\x09deny: (false and: [ false ]).\x0a\x09self \x0a\x09\x09assert: (true or: [ true ]); \x0a\x09\x09assert: (true or: [ false ]); \x0a\x09\x09assert: (false or: [ true ]); \x0a\x09\x09deny: (false or: [ false ]).\x0a \x0a\x09\x22Checking that expressions work fine too\x22\x0a\x09self \x0a\x09\x09assert: (true and: [ 1 > 0 ]); \x0a\x09\x09deny: ((1 > 0) and: [ false ]); \x0a\x09\x09deny: ((1 > 0) and: [ 1 > 2 ]).\x0a self \x0a\x09\x09assert: (false or: [ 1 > 0 ]); \x0a\x09\x09assert: ((1 > 0) or: [ false ]); \x0a\x09\x09assert: ((1 > 0) or: [ 1 > 2 ])",
316
385
  messageSends: ["assert:", "and:", "deny:", "or:", ">"],
@@ -328,8 +397,8 @@ selector: "setUp",
328
397
  category: 'running',
329
398
  fn: function (){
330
399
  var self=this;
331
- (self['@builder']=smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []));
332
- return self;},
400
+ self["@builder"]=smalltalk.send((smalltalk.ClassBuilder || ClassBuilder),"_new",[]);
401
+ return self},
333
402
  args: [],
334
403
  source: "setUp\x0a\x09builder := ClassBuilder new",
335
404
  messageSends: ["new"],
@@ -344,8 +413,14 @@ selector: "tearDown",
344
413
  category: 'running',
345
414
  fn: function (){
346
415
  var self=this;
347
- (($receiver = self['@theClass']) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_removeClass_", [self['@theClass']]);return (self['@theClass']=nil);})() : nil;
348
- return self;},
416
+ if(($receiver = self["@theClass"]) == nil || $receiver == undefined){
417
+ self["@theClass"];
418
+ } else {
419
+ smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_removeClass_",[self["@theClass"]]);
420
+ self["@theClass"]=nil;
421
+ self["@theClass"];
422
+ };
423
+ return self},
349
424
  args: [],
350
425
  source: "tearDown\x0a\x09theClass ifNotNil: [Smalltalk current removeClass: theClass. theClass := nil]",
351
426
  messageSends: ["ifNotNil:", "removeClass:", "current"],
@@ -360,13 +435,13 @@ selector: "testClassCopy",
360
435
  category: 'running',
361
436
  fn: function (){
362
437
  var self=this;
363
- (self['@theClass']=smalltalk.send(self['@builder'], "_copyClass_named_", [(smalltalk.ObjectMock || ObjectMock), "ObjectMock2"]));
364
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_superclass", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_superclass", [])])]);
365
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_instanceVariableNames", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_instanceVariableNames", [])])]);
366
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(self['@theClass'], "_name", []), "ObjectMock2"]);
367
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_package", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_package", [])])]);
368
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(self['@theClass'], "_methodDictionary", []), "_keys", []), smalltalk.send(smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_methodDictionary", []), "_keys", [])]);
369
- return self;},
438
+ self["@theClass"]=smalltalk.send(self["@builder"],"_copyClass_named_",[(smalltalk.ObjectMock || ObjectMock),"ObjectMock2"]);
439
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(self["@theClass"],"_superclass",[]),"__eq_eq",[smalltalk.send((smalltalk.ObjectMock || ObjectMock),"_superclass",[])])]);
440
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(self["@theClass"],"_instanceVariableNames",[]),"__eq_eq",[smalltalk.send((smalltalk.ObjectMock || ObjectMock),"_instanceVariableNames",[])])]);
441
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(self["@theClass"],"_name",[]),"ObjectMock2"]);
442
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(self["@theClass"],"_package",[]),"__eq_eq",[smalltalk.send((smalltalk.ObjectMock || ObjectMock),"_package",[])])]);
443
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(self["@theClass"],"_methodDictionary",[]),"_keys",[]),smalltalk.send(smalltalk.send((smalltalk.ObjectMock || ObjectMock),"_methodDictionary",[]),"_keys",[])]);
444
+ return self},
370
445
  args: [],
371
446
  source: "testClassCopy\x0a\x09theClass := builder copyClass: ObjectMock named: 'ObjectMock2'.\x0a\x09self assert: theClass superclass == ObjectMock superclass.\x0a\x09self assert: theClass instanceVariableNames == ObjectMock instanceVariableNames.\x0a\x09self assert: theClass name equals: 'ObjectMock2'.\x0a\x09self assert: theClass package == ObjectMock package.\x0a\x09self assert: theClass methodDictionary keys equals: ObjectMock methodDictionary keys",
372
447
  messageSends: ["copyClass:named:", "assert:", "==", "superclass", "instanceVariableNames", "assert:equals:", "name", "package", "keys", "methodDictionary"],
@@ -381,8 +456,8 @@ selector: "testInstanceVariableNames",
381
456
  category: 'running',
382
457
  fn: function (){
383
458
  var self=this;
384
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(self['@builder'], "_instanceVariableNamesFor_", [" hello world "]), ["hello", "world"]]);
385
- return self;},
459
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(self["@builder"],"_instanceVariableNamesFor_",[" hello world "]),["hello", "world"]]);
460
+ return self},
386
461
  args: [],
387
462
  source: "testInstanceVariableNames\x0a\x09self assert: (builder instanceVariableNamesFor: ' hello world ') equals: #('hello' 'world')",
388
463
  messageSends: ["assert:equals:", "instanceVariableNamesFor:"],
@@ -392,1511 +467,2546 @@ smalltalk.ClassBuilderTest);
392
467
 
393
468
 
394
469
 
395
- smalltalk.addClass('DictionaryTest', smalltalk.TestCase, [], 'Kernel-Tests');
470
+ smalltalk.addClass('CollectionTest', smalltalk.TestCase, [], 'Kernel-Tests');
396
471
  smalltalk.addMethod(
397
- "_testAccessing",
472
+ "_assertSameContents_as_",
398
473
  smalltalk.method({
399
- selector: "testAccessing",
400
- category: 'tests',
401
- fn: function (){
474
+ selector: "assertSameContents:as:",
475
+ category: 'convenience',
476
+ fn: function (aCollection,anotherCollection){
402
477
  var self=this;
403
- var d=nil;
404
- (d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
405
- smalltalk.send(d, "_at_put_", ["hello", "world"]);
406
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_", ["hello"]), "__eq", ["world"])]);
407
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_ifAbsent_", ["hello", (function(){return nil;})]), "__eq", ["world"])]);
408
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(d, "_at_ifAbsent_", ["foo", (function(){return nil;})]), "__eq", ["world"])]);
409
- smalltalk.send(d, "_at_put_", [(1), (2)]);
410
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_", [(1)]), "__eq", [(2)])]);
411
- smalltalk.send(d, "_at_put_", [smalltalk.send((1), "__at", [(3)]), (3)]);
412
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_", [smalltalk.send((1), "__at", [(3)])]), "__eq", [(3)])]);
413
- return self;},
414
- args: [],
415
- source: "testAccessing\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x0a\x09d at: 'hello' put: 'world'.\x0a\x09self assert: (d at: 'hello') = 'world'.\x0a\x09self assert: (d at: 'hello' ifAbsent: [nil]) = 'world'.\x0a\x09self deny: (d at: 'foo' ifAbsent: [nil]) = 'world'.\x0a\x0a\x09d at: 1 put: 2.\x0a\x09self assert: (d at: 1) = 2.\x0a\x0a\x09d at: 1@3 put: 3.\x0a\x09self assert: (d at: 1@3) = 3",
416
- messageSends: ["new", "at:put:", "assert:", "=", "at:", "at:ifAbsent:", "deny:", "@"],
417
- referencedClasses: ["Dictionary"]
478
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(aCollection,"_size",[]),"__eq",[smalltalk.send(anotherCollection,"_size",[])])]);
479
+ smalltalk.send(aCollection,"_do_",[(function(each){
480
+ return smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(aCollection,"_occurrencesOf_",[each]),"__eq",[smalltalk.send(anotherCollection,"_occurrencesOf_",[each])])]);
481
+ })]);
482
+ return self},
483
+ args: ["aCollection", "anotherCollection"],
484
+ source: "assertSameContents: aCollection \x09as: anotherCollection\x0a\x09self assert: aCollection size = anotherCollection size.\x0a\x09aCollection do: [ :each |\x0a\x09\x09self assert: (aCollection occurrencesOf: each) = (anotherCollection occurrencesOf: each) ]",
485
+ messageSends: ["assert:", "=", "size", "do:", "occurrencesOf:"],
486
+ referencedClasses: []
418
487
  }),
419
- smalltalk.DictionaryTest);
488
+ smalltalk.CollectionTest);
420
489
 
421
490
  smalltalk.addMethod(
422
- "_testDynamicDictionaries",
491
+ "_collection",
423
492
  smalltalk.method({
424
- selector: "testDynamicDictionaries",
425
- category: 'tests',
493
+ selector: "collection",
494
+ category: 'accessing',
426
495
  fn: function (){
427
496
  var self=this;
428
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.HashedCollection._fromPairs_([smalltalk.send("hello", "__minus_gt", [(1)])]), "_asDictionary", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_with_", [smalltalk.send("hello", "__minus_gt", [(1)])])])]);
429
- return self;},
497
+ var $1;
498
+ $1=smalltalk.send(smalltalk.send(self,"_collectionClass",[]),"_withAll_",[smalltalk.send(self,"_defaultValues",[])]);
499
+ return $1;
500
+ },
430
501
  args: [],
431
- source: "testDynamicDictionaries\x0a\x09self assert: #{'hello' -> 1} asDictionary = (Dictionary with: 'hello' -> 1)",
432
- messageSends: ["assert:", "=", "asDictionary", "->", "with:"],
433
- referencedClasses: ["Dictionary"]
502
+ source: "collection\x0a\x09^ self collectionClass withAll: self defaultValues",
503
+ messageSends: ["withAll:", "defaultValues", "collectionClass"],
504
+ referencedClasses: []
434
505
  }),
435
- smalltalk.DictionaryTest);
506
+ smalltalk.CollectionTest);
436
507
 
437
508
  smalltalk.addMethod(
438
- "_testEquality",
509
+ "_collectionClass",
439
510
  smalltalk.method({
440
- selector: "testEquality",
441
- category: 'tests',
511
+ selector: "collectionClass",
512
+ category: 'accessing',
442
513
  fn: function (){
443
514
  var self=this;
444
- var d1=nil;
445
- var d2=nil;
446
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])])]);
447
- (d1=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
448
- (d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
449
- smalltalk.send(self, "_assert_", [smalltalk.send(d1, "__eq", [d2])]);
450
- (d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (3)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
451
- smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
452
- (d2=(function($rec){smalltalk.send($rec, "_at_put_", [(2), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
453
- smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
454
- (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", [])));
455
- smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
456
- return self;},
515
+ var $1;
516
+ $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_collectionClass",[]);
517
+ return $1;
518
+ },
457
519
  args: [],
458
- source: "testEquality\x0a\x09| d1 d2 |\x0a\x0a\x09self assert: Dictionary new = Dictionary new.\x0a\x09\x09\x0a\x09d1 := Dictionary new at: 1 put: 2; yourself.\x0a\x09d2 := Dictionary new at: 1 put: 2; yourself.\x0a\x09self assert: d1 = d2.\x0a\x0a\x09d2 := Dictionary new at: 1 put: 3; yourself.\x0a\x09self deny: d1 = d2.\x0a\x0a\x09d2 := Dictionary new at: 2 put: 2; yourself.\x0a\x09self deny: d1 = d2.\x0a\x0a\x09d2 := Dictionary new at: 1 put: 2; at: 3 put: 4; yourself.\x0a\x09self deny: d1 = d2.",
459
- messageSends: ["assert:", "=", "new", "at:put:", "yourself", "deny:"],
460
- referencedClasses: ["Dictionary"]
520
+ source: "collectionClass\x0a\x09^ self class collectionClass",
521
+ messageSends: ["collectionClass", "class"],
522
+ referencedClasses: []
461
523
  }),
462
- smalltalk.DictionaryTest);
524
+ smalltalk.CollectionTest);
463
525
 
464
526
  smalltalk.addMethod(
465
- "_testKeys",
527
+ "_collectionWithDuplicates",
466
528
  smalltalk.method({
467
- selector: "testKeys",
468
- category: 'tests',
529
+ selector: "collectionWithDuplicates",
530
+ category: 'accessing',
469
531
  fn: function (){
470
532
  var self=this;
471
- var d=nil;
472
- (d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
473
- smalltalk.send(d, "_at_put_", [(1), (2)]);
474
- smalltalk.send(d, "_at_put_", [(2), (3)]);
475
- smalltalk.send(d, "_at_put_", [(3), (4)]);
476
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_keys", []), "__eq", [[(1), (2), (3)]])]);
477
- return self;},
533
+ var $1;
534
+ $1=smalltalk.send(smalltalk.send(self,"_collectionClass",[]),"_withAll_",[["a", "b", "c", (1), (2), (1), "a"]]);
535
+ return $1;
536
+ },
478
537
  args: [],
479
- source: "testKeys\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x09d at: 1 put: 2.\x0a\x09d at: 2 put: 3.\x0a\x09d at: 3 put: 4.\x0a\x0a\x09self assert: d keys = #(1 2 3)",
480
- messageSends: ["new", "at:put:", "assert:", "=", "keys"],
481
- referencedClasses: ["Dictionary"]
538
+ source: "collectionWithDuplicates\x0a\x09^ self collectionClass withAll: #('a' 'b' 'c' 1 2 1 'a')",
539
+ messageSends: ["withAll:", "collectionClass"],
540
+ referencedClasses: []
482
541
  }),
483
- smalltalk.DictionaryTest);
542
+ smalltalk.CollectionTest);
484
543
 
485
544
  smalltalk.addMethod(
486
- "_testPrintString",
545
+ "_defaultValues",
487
546
  smalltalk.method({
488
- selector: "testPrintString",
489
- category: 'tests',
547
+ selector: "defaultValues",
548
+ category: 'accessing',
490
549
  fn: function (){
491
550
  var self=this;
492
- smalltalk.send(self, "_assert_equals_", ["a Dictionary('firstname' -> 'James' , 'lastname' -> 'Bond')", (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", []))]);
493
- return self;},
551
+ return [(1), (2), (3), (-4)];
552
+ },
494
553
  args: [],
495
- source: "testPrintString\x0a\x09self\x0a\x09\x09assert: 'a Dictionary(''firstname'' -> ''James'' , ''lastname'' -> ''Bond'')' \x0a\x09\x09equals: (Dictionary new \x0a \x09at:'firstname' put: 'James';\x0a \x09at:'lastname' put: 'Bond';\x0a \x09printString)",
496
- messageSends: ["assert:equals:", "at:put:", "printString", "new"],
497
- referencedClasses: ["Dictionary"]
554
+ source: "defaultValues\x0a\x09^ #(1 2 3 -4)",
555
+ messageSends: [],
556
+ referencedClasses: []
498
557
  }),
499
- smalltalk.DictionaryTest);
558
+ smalltalk.CollectionTest);
500
559
 
501
560
  smalltalk.addMethod(
502
- "_testRemoveKey",
561
+ "_isCollectionReadOnly",
503
562
  smalltalk.method({
504
- selector: "testRemoveKey",
505
- category: 'tests',
563
+ selector: "isCollectionReadOnly",
564
+ category: 'testing',
506
565
  fn: function (){
507
566
  var self=this;
508
- var d=nil;
509
- var key=nil;
510
- (d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
511
- smalltalk.send(d, "_at_put_", [(1), (2)]);
512
- smalltalk.send(d, "_at_put_", [(2), (3)]);
513
- smalltalk.send(d, "_at_put_", [(3), (4)]);
514
- (key=(2));
515
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_keys", []), "__eq", [[(1), (2), (3)]])]);
516
- smalltalk.send(d, "_removeKey_", [key]);
517
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_keys", []), "__eq", [[(1), (3)]])]);
518
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_values", []), "__eq", [[(2), (4)]])]);
519
- smalltalk.send(self, "_deny_", [smalltalk.send(d, "_includesKey_", [(2)])]);
520
- return self;},
567
+ return false;
568
+ },
521
569
  args: [],
522
- source: "testRemoveKey\x0a | d key |\x0a\x0a d := Dictionary new.\x0a d at: 1 put: 2.\x0a d at: 2 put: 3.\x0a d at: 3 put: 4.\x0a\x0a key := 2.\x0a\x0a self assert: d keys = #(1 2 3).\x0a\x0a d removeKey: key.\x0a self assert: d keys = #(1 3).\x0a self assert: d values = #(2 4).\x0a self deny: (d includesKey: 2)",
523
- messageSends: ["new", "at:put:", "assert:", "=", "keys", "removeKey:", "values", "deny:", "includesKey:"],
524
- referencedClasses: ["Dictionary"]
570
+ source: "isCollectionReadOnly\x0a\x09^ false",
571
+ messageSends: [],
572
+ referencedClasses: []
525
573
  }),
526
- smalltalk.DictionaryTest);
574
+ smalltalk.CollectionTest);
527
575
 
528
576
  smalltalk.addMethod(
529
- "_testRemoveKeyIfAbsent",
577
+ "_testAsArray",
530
578
  smalltalk.method({
531
- selector: "testRemoveKeyIfAbsent",
579
+ selector: "testAsArray",
532
580
  category: 'tests',
533
581
  fn: function (){
534
582
  var self=this;
535
- var d=nil;
536
- var key=nil;
537
- (d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
538
- smalltalk.send(d, "_at_put_", [(1), (2)]);
539
- smalltalk.send(d, "_at_put_", [(2), (3)]);
540
- smalltalk.send(d, "_at_put_", [(3), (4)]);
541
- (key=(2));
542
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_removeKey_", [key]), "__eq", [(3)])]);
543
- (key=(3));
544
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_removeKey_ifAbsent_", [key, (function(){return (42);})]), "__eq", [(4)])]);
545
- (key="why");
546
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_removeKey_ifAbsent_", [key, (function(){return (42);})]), "__eq", [(42)])]);
547
- return self;},
583
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(self,"_collection",[]),smalltalk.send(smalltalk.send(self,"_collection",[]),"_asArray",[])]);
584
+ return self},
548
585
  args: [],
549
- source: "testRemoveKeyIfAbsent\x0a | d key |\x0a\x0a d := Dictionary new.\x0a d at: 1 put: 2.\x0a d at: 2 put: 3.\x0a d at: 3 put: 4.\x0a\x0a key := 2.\x0a self assert: (d removeKey: key) = 3.\x0a\x0a key := 3.\x0a self assert: (d removeKey: key ifAbsent: [42]) = 4.\x0a\x0a key := 'why'.\x0a self assert: (d removeKey: key ifAbsent: [42] ) = 42.",
550
- messageSends: ["new", "at:put:", "assert:", "=", "removeKey:", "removeKey:ifAbsent:"],
551
- referencedClasses: ["Dictionary"]
586
+ source: "testAsArray\x0a\x09self \x0a\x09\x09assertSameContents: self collection \x0a\x09\x09as: self collection asArray",
587
+ messageSends: ["assertSameContents:as:", "collection", "asArray"],
588
+ referencedClasses: []
552
589
  }),
553
- smalltalk.DictionaryTest);
590
+ smalltalk.CollectionTest);
554
591
 
555
592
  smalltalk.addMethod(
556
- "_testSize",
593
+ "_testAsOrderedCollection",
557
594
  smalltalk.method({
558
- selector: "testSize",
595
+ selector: "testAsOrderedCollection",
559
596
  category: 'tests',
560
597
  fn: function (){
561
598
  var self=this;
562
- var d=nil;
563
- (d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
564
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(0)])]);
565
- smalltalk.send(d, "_at_put_", [(1), (2)]);
566
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(1)])]);
567
- smalltalk.send(d, "_at_put_", [(2), (3)]);
568
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(2)])]);
569
- return self;},
599
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(self,"_collection",[]),smalltalk.send(smalltalk.send(self,"_collection",[]),"_asOrderedCollection",[])]);
600
+ return self},
570
601
  args: [],
571
- source: "testSize\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x09self assert: d size = 0.\x0a\x0a\x09d at: 1 put: 2.\x0a\x09self assert: d size = 1.\x0a\x0a\x09d at: 2 put: 3.\x0a\x09self assert: d size = 2.",
572
- messageSends: ["new", "assert:", "=", "size", "at:put:"],
573
- referencedClasses: ["Dictionary"]
602
+ source: "testAsOrderedCollection\x0a\x09self \x0a\x09\x09assertSameContents: self collection \x0a\x09\x09as: self collection asOrderedCollection",
603
+ messageSends: ["assertSameContents:as:", "collection", "asOrderedCollection"],
604
+ referencedClasses: []
574
605
  }),
575
- smalltalk.DictionaryTest);
606
+ smalltalk.CollectionTest);
576
607
 
577
608
  smalltalk.addMethod(
578
- "_testValues",
609
+ "_testAsSet",
579
610
  smalltalk.method({
580
- selector: "testValues",
611
+ selector: "testAsSet",
581
612
  category: 'tests',
582
613
  fn: function (){
583
614
  var self=this;
584
- var d=nil;
585
- (d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
586
- smalltalk.send(d, "_at_put_", [(1), (2)]);
587
- smalltalk.send(d, "_at_put_", [(2), (3)]);
588
- smalltalk.send(d, "_at_put_", [(3), (4)]);
589
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_values", []), "__eq", [[(2), (3), (4)]])]);
590
- return self;},
615
+ var c;
616
+ var set;
617
+ c=smalltalk.send(self,"_collectionWithDuplicates",[]);
618
+ set=smalltalk.send(c,"_asSet",[]);
619
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(set,"_size",[]),"__eq",[(5)])]);
620
+ smalltalk.send(c,"_do_",[(function(each){
621
+ return smalltalk.send(self,"_assert_",[smalltalk.send(set,"_includes_",[each])]);
622
+ })]);
623
+ return self},
591
624
  args: [],
592
- source: "testValues\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x09d at: 1 put: 2.\x0a\x09d at: 2 put: 3.\x0a\x09d at: 3 put: 4.\x0a\x0a\x09self assert: d values = #(2 3 4)",
593
- messageSends: ["new", "at:put:", "assert:", "=", "values"],
594
- referencedClasses: ["Dictionary"]
625
+ source: "testAsSet\x0a\x09| c set |\x0a\x09c := self collectionWithDuplicates.\x0a\x09set := c asSet.\x0a\x09self assert: set size = 5.\x0a\x09c do: [ :each |\x0a\x09\x09self assert: (set includes: each) ]",
626
+ messageSends: ["collectionWithDuplicates", "asSet", "assert:", "=", "size", "do:", "includes:"],
627
+ referencedClasses: []
595
628
  }),
596
- smalltalk.DictionaryTest);
629
+ smalltalk.CollectionTest);
597
630
 
598
-
599
-
600
- smalltalk.addClass('JSObjectProxyTest', smalltalk.TestCase, [], 'Kernel-Tests');
601
631
  smalltalk.addMethod(
602
- "_jsObject",
632
+ "_testCollect",
603
633
  smalltalk.method({
604
- selector: "jsObject",
605
- category: 'accessing',
634
+ selector: "testCollect",
635
+ category: 'tests',
606
636
  fn: function (){
607
637
  var self=this;
608
- return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}};
609
- return self;},
638
+ var newCollection;
639
+ newCollection=[(1), (2), (3), (4)];
640
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_collect_",[(function(each){
641
+ return smalltalk.send(each,"_abs",[]);
642
+ })]),newCollection]);
643
+ return self},
610
644
  args: [],
611
- source: "jsObject\x0a\x09<return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}}>",
612
- messageSends: [],
645
+ source: "testCollect\x0a\x09| newCollection |\x0a\x09newCollection := #(1 2 3 4).\x0a\x09self \x0a\x09\x09assertSameContents: (self collection collect: [ :each |\x0a\x09\x09\x09each abs ])\x0a\x09\x09as: newCollection",
646
+ messageSends: ["assertSameContents:as:", "collect:", "abs", "collection"],
613
647
  referencedClasses: []
614
648
  }),
615
- smalltalk.JSObjectProxyTest);
649
+ smalltalk.CollectionTest);
616
650
 
617
651
  smalltalk.addMethod(
618
- "_testDNU",
652
+ "_testDetect",
619
653
  smalltalk.method({
620
- selector: "testDNU",
654
+ selector: "testDetect",
621
655
  category: 'tests',
622
656
  fn: function (){
623
657
  var self=this;
624
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send(smalltalk.send(self, "_jsObject", []), "_foo", []);}), (smalltalk.MessageNotUnderstood || MessageNotUnderstood)]);
625
- return self;},
658
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_detect_",[(function(each){
659
+ return smalltalk.send(each,"__lt",[(0)]);
660
+ })]),"__eq",[(-4)])]);
661
+ smalltalk.send(self,"_should_raise_",[(function(){
662
+ return smalltalk.send(smalltalk.send(self,"_collection",[]),"_detect_",[(function(each){
663
+ return smalltalk.send(each,"__eq",[(6)]);
664
+ })]);
665
+ }),(smalltalk.Error || Error)]);
666
+ return self},
626
667
  args: [],
627
- source: "testDNU\x0a\x09self should: [self jsObject foo] raise: MessageNotUnderstood",
628
- messageSends: ["should:raise:", "foo", "jsObject"],
629
- referencedClasses: ["MessageNotUnderstood"]
668
+ source: "testDetect\x0a\x09self assert: (self collection detect: [ :each | each < 0 ]) = -4.\x0a\x09self \x0a\x09\x09should: [ self collection detect: [ :each | each = 6 ] ]\x0a\x09\x09raise: Error",
669
+ messageSends: ["assert:", "=", "detect:", "<", "collection", "should:raise:"],
670
+ referencedClasses: ["Error"]
630
671
  }),
631
- smalltalk.JSObjectProxyTest);
672
+ smalltalk.CollectionTest);
632
673
 
633
674
  smalltalk.addMethod(
634
- "_testMessageSend",
675
+ "_testDo",
635
676
  smalltalk.method({
636
- selector: "testMessageSend",
677
+ selector: "testDo",
637
678
  category: 'tests',
638
679
  fn: function (){
639
680
  var self=this;
640
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(self, "_jsObject", []), "_a", []), (1)]);
641
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(self, "_jsObject", []), "_b", []), (2)]);
642
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(self, "_jsObject", []), "_c_", [(3)]), (3)]);
643
- return self;},
681
+ var newCollection;
682
+ newCollection=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection),"_new",[]);
683
+ smalltalk.send(smalltalk.send(self,"_collection",[]),"_do_",[(function(each){
684
+ return smalltalk.send(newCollection,"_add_",[each]);
685
+ })]);
686
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(self,"_collection",[]),newCollection]);
687
+ return self},
644
688
  args: [],
645
- source: "testMessageSend\x0a\x0a\x09self assert: self jsObject a equals: 1.\x0a\x09self assert: self jsObject b equals: 2.\x0a\x09self assert: (self jsObject c: 3) equals: 3",
646
- messageSends: ["assert:equals:", "a", "jsObject", "b", "c:"],
647
- referencedClasses: []
689
+ source: "testDo\x0a\x09| newCollection |\x0a\x09newCollection := OrderedCollection new.\x0a\x09self collection do: [ :each |\x0a\x09\x09newCollection add: each ].\x0a\x09self \x0a\x09\x09assertSameContents: self collection \x0a\x09\x09as: newCollection",
690
+ messageSends: ["new", "do:", "add:", "collection", "assertSameContents:as:"],
691
+ referencedClasses: ["OrderedCollection"]
648
692
  }),
649
- smalltalk.JSObjectProxyTest);
693
+ smalltalk.CollectionTest);
650
694
 
651
695
  smalltalk.addMethod(
652
- "_testMethodWithArguments",
696
+ "_testIsEmpty",
653
697
  smalltalk.method({
654
- selector: "testMethodWithArguments",
698
+ selector: "testIsEmpty",
655
699
  category: 'tests',
656
700
  fn: function (){
657
701
  var self=this;
658
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_hasClass_", ["amber"])]);
659
- smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_addClass_", ["amber"]);
660
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_hasClass_", ["amber"])]);
661
- smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_removeClass_", ["amber"]);
662
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_hasClass_", ["amber"])]);
663
- return self;},
702
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collectionClass",[]),"_new",[]),"_isEmpty",[])]);
703
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_isEmpty",[])]);
704
+ return self},
664
705
  args: [],
665
- source: "testMethodWithArguments\x0a\x09self deny: ('body' asJQuery hasClass: 'amber').\x0a\x0a\x09'body' asJQuery addClass: 'amber'.\x0a\x09self assert: ('body' asJQuery hasClass: 'amber').\x0a\x0a\x09'body' asJQuery removeClass: 'amber'.\x0a\x09self deny: ('body' asJQuery hasClass: 'amber').",
666
- messageSends: ["deny:", "hasClass:", "asJQuery", "addClass:", "assert:", "removeClass:"],
706
+ source: "testIsEmpty\x0a\x09self assert: self collectionClass new isEmpty.\x0a\x09self deny: self collection isEmpty",
707
+ messageSends: ["assert:", "isEmpty", "new", "collectionClass", "deny:", "collection"],
667
708
  referencedClasses: []
668
709
  }),
669
- smalltalk.JSObjectProxyTest);
710
+ smalltalk.CollectionTest);
670
711
 
671
712
  smalltalk.addMethod(
672
- "_testPrinting",
713
+ "_testSelect",
673
714
  smalltalk.method({
674
- selector: "testPrinting",
715
+ selector: "testSelect",
675
716
  category: 'tests',
676
717
  fn: function (){
677
718
  var self=this;
678
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_jsObject", []), "_printString", []), "__eq", ["[object Object]"])]);
679
- return self;},
719
+ var newCollection;
720
+ newCollection=[(2), (-4)];
721
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_select_",[(function(each){
722
+ return smalltalk.send(each,"_even",[]);
723
+ })]),newCollection]);
724
+ return self},
680
725
  args: [],
681
- source: "testPrinting\x0a\x09self assert: self jsObject printString = '[object Object]'",
682
- messageSends: ["assert:", "=", "printString", "jsObject"],
726
+ source: "testSelect\x0a\x09| newCollection |\x0a\x09newCollection := #(2 -4).\x0a\x09self \x0a\x09\x09assertSameContents: (self collection select: [ :each |\x0a\x09\x09\x09each even ])\x0a\x09\x09as: newCollection",
727
+ messageSends: ["assertSameContents:as:", "select:", "even", "collection"],
683
728
  referencedClasses: []
684
729
  }),
685
- smalltalk.JSObjectProxyTest);
730
+ smalltalk.CollectionTest);
686
731
 
687
732
  smalltalk.addMethod(
688
- "_testPropertyThatReturnsEmptyString",
733
+ "_testSize",
689
734
  smalltalk.method({
690
- selector: "testPropertyThatReturnsEmptyString",
735
+ selector: "testSize",
691
736
  category: 'tests',
692
737
  fn: function (){
693
738
  var self=this;
694
- document.location.hash = '';
695
- smalltalk.send(self, "_assert_equals_", ["", smalltalk.send(smalltalk.send((typeof document == 'undefined' ? nil : document), "_location", []), "_hash", [])]);
696
- smalltalk.send(smalltalk.send((typeof document == 'undefined' ? nil : document), "_location", []), "_hash_", ["test"]);
697
- smalltalk.send(self, "_assert_equals_", ["#test", smalltalk.send(smalltalk.send((typeof document == 'undefined' ? nil : document), "_location", []), "_hash", [])]);
698
- return self;},
739
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_collectionClass",[]),"_new",[]),"_size",[]),"__eq",[(0)])]);
740
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_size",[]),"__eq",[(4)])]);
741
+ return self},
699
742
  args: [],
700
- source: "testPropertyThatReturnsEmptyString\x0a\x09<document.location.hash = ''>.\x0a\x09self assert: '' equals: document location hash.\x0a\x0a\x09document location hash: 'test'.\x0a\x09self assert: '#test' equals: document location hash.",
701
- messageSends: ["assert:equals:", "hash", "location", "hash:"],
743
+ source: "testSize\x0a\x09self assert: self collectionClass new size = 0.\x0a\x09self assert: self collection size = 4",
744
+ messageSends: ["assert:", "=", "size", "new", "collectionClass", "collection"],
702
745
  referencedClasses: []
703
746
  }),
704
- smalltalk.JSObjectProxyTest);
747
+ smalltalk.CollectionTest);
748
+
705
749
 
706
750
  smalltalk.addMethod(
707
- "_testYourself",
751
+ "_collectionClass",
708
752
  smalltalk.method({
709
- selector: "testYourself",
710
- category: 'tests',
753
+ selector: "collectionClass",
754
+ category: 'accessing',
711
755
  fn: function (){
712
756
  var self=this;
713
- var body=nil;
714
- (body=(function($rec){smalltalk.send($rec, "_addClass_", ["amber"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send("body", "_asJQuery", [])));
715
- smalltalk.send(self, "_assert_", [smalltalk.send(body, "_hasClass_", ["amber"])]);
716
- smalltalk.send(body, "_removeClass_", ["amber"]);
717
- smalltalk.send(self, "_deny_", [smalltalk.send(body, "_hasClass_", ["amber"])]);
718
- return self;},
757
+ return nil;
758
+ },
719
759
  args: [],
720
- source: "testYourself\x0a\x09|body|\x0a\x09body := 'body' asJQuery\x0a\x09\x09\x09\x09addClass: 'amber';\x0a\x09\x09\x09\x09yourself.\x0a\x0a\x09self assert: (body hasClass: 'amber').\x0a\x0a\x09body removeClass: 'amber'.\x0a\x09self deny: (body hasClass: 'amber').",
721
- messageSends: ["addClass:", "yourself", "asJQuery", "assert:", "hasClass:", "removeClass:", "deny:"],
760
+ source: "collectionClass\x0a\x09^ nil",
761
+ messageSends: [],
722
762
  referencedClasses: []
723
763
  }),
724
- smalltalk.JSObjectProxyTest);
725
-
726
-
764
+ smalltalk.CollectionTest.klass);
727
765
 
728
- smalltalk.addClass('NumberTest', smalltalk.TestCase, [], 'Kernel-Tests');
729
766
  smalltalk.addMethod(
730
- "_testArithmetic",
767
+ "_isAbstract",
731
768
  smalltalk.method({
732
- selector: "testArithmetic",
733
- category: 'tests',
769
+ selector: "isAbstract",
770
+ category: 'testing',
734
771
  fn: function (){
735
772
  var self=this;
736
- smalltalk.send(self, "_assert_", [smalltalk.send((1.5) + (1), "__eq", [(2.5)])]);
737
- smalltalk.send(self, "_assert_", [smalltalk.send((2) - (1), "__eq", [(1)])]);
738
- smalltalk.send(self, "_assert_", [smalltalk.send((-2) - (1), "__eq", [(-3)])]);
739
- smalltalk.send(self, "_assert_", [smalltalk.send((12) / (2), "__eq", [(6)])]);
740
- smalltalk.send(self, "_assert_", [smalltalk.send((3) * (4), "__eq", [(12)])]);
741
- smalltalk.send(self, "_assert_", [smalltalk.send(((($receiver = (1) + (2)).klass === smalltalk.Number) ? $receiver *(3) : smalltalk.send($receiver, "__star", [(3)])), "__eq", [(9)])]);
742
- smalltalk.send(self, "_assert_", [smalltalk.send((1) + (2) * (3), "__eq", [(7)])]);
743
- return self;},
773
+ var $1;
774
+ $1=smalltalk.send(smalltalk.send(self,"_collectionClass",[]),"_isNil",[]);
775
+ return $1;
776
+ },
744
777
  args: [],
745
- source: "testArithmetic\x0a\x09\x0a\x09\x22We rely on JS here, so we won't test complex behavior, just check if \x0a\x09message sends are corrects\x22\x0a\x0a\x09self assert: 1.5 + 1 = 2.5.\x0a\x09self assert: 2 - 1 = 1.\x0a\x09self assert: -2 - 1 = -3.\x0a\x09self assert: 12 / 2 = 6.\x0a\x09self assert: 3 * 4 = 12.\x0a\x0a\x09\x22Simple parenthesis and execution order\x22\x0a\x0a\x09self assert: 1 + 2 * 3 = 9.\x0a\x09self assert: 1 + (2 * 3) = 7",
746
- messageSends: ["assert:", "=", "+", "-", "/", "*"],
778
+ source: "isAbstract\x0a\x09^ self collectionClass isNil",
779
+ messageSends: ["isNil", "collectionClass"],
747
780
  referencedClasses: []
748
781
  }),
749
- smalltalk.NumberTest);
782
+ smalltalk.CollectionTest.klass);
750
783
 
784
+
785
+ smalltalk.addClass('HashedCollectionTest', smalltalk.CollectionTest, [], 'Kernel-Tests');
751
786
  smalltalk.addMethod(
752
- "_testComparison",
787
+ "_collection",
753
788
  smalltalk.method({
754
- selector: "testComparison",
755
- category: 'tests',
789
+ selector: "collection",
790
+ category: 'accessing',
756
791
  fn: function (){
757
792
  var self=this;
758
- smalltalk.send(self, "_assert_", [(3) > (2)]);
759
- smalltalk.send(self, "_assert_", [(2) < (3)]);
760
- smalltalk.send(self, "_deny_", [(3) < (2)]);
761
- smalltalk.send(self, "_deny_", [(2) > (3)]);
762
- smalltalk.send(self, "_assert_", [(3) >= (3)]);
763
- smalltalk.send(self, "_assert_", [(3.1) >= (3)]);
764
- smalltalk.send(self, "_assert_", [(3) <= (3)]);
765
- smalltalk.send(self, "_assert_", [(3) <= (3.1)]);
766
- return self;},
793
+ var $1;
794
+ $1=smalltalk.HashedCollection._fromPairs_([smalltalk.send("a","__minus_gt",[(1)]),smalltalk.send("b","__minus_gt",[(2)]),smalltalk.send("c","__minus_gt",[(3)]),smalltalk.send("d","__minus_gt",[(-4)])]);
795
+ return $1;
796
+ },
767
797
  args: [],
768
- source: "testComparison\x0a\x0a\x09self assert: 3 > 2.\x0a\x09self assert: 2 < 3.\x0a\x09\x0a\x09self deny: 3 < 2.\x0a\x09self deny: 2 > 3.\x0a\x0a\x09self assert: 3 >= 3.\x0a\x09self assert: 3.1 >= 3.\x0a\x09self assert: 3 <= 3.\x0a\x09self assert: 3 <= 3.1",
769
- messageSends: ["assert:", ">", "<", "deny:", ">=", "<="],
798
+ source: "collection\x0a\x09^ #{ 'a' -> 1. 'b' -> 2. 'c' -> 3. 'd' -> -4 }",
799
+ messageSends: ["->"],
770
800
  referencedClasses: []
771
801
  }),
772
- smalltalk.NumberTest);
802
+ smalltalk.HashedCollectionTest);
773
803
 
774
804
  smalltalk.addMethod(
775
- "_testCopying",
805
+ "_collectionWithDuplicates",
776
806
  smalltalk.method({
777
- selector: "testCopying",
778
- category: 'tests',
807
+ selector: "collectionWithDuplicates",
808
+ category: 'accessing',
779
809
  fn: function (){
780
810
  var self=this;
781
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_copy", []), "__eq_eq", [(1)])]);
782
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_deepCopy", []), "__eq_eq", [(1)])]);
783
- return self;},
811
+ var $1;
812
+ $1=smalltalk.HashedCollection._fromPairs_([smalltalk.send("a","__minus_gt",[(1)]),smalltalk.send("b","__minus_gt",[(2)]),smalltalk.send("c","__minus_gt",[(3)]),smalltalk.send("d","__minus_gt",[(-4)]),smalltalk.send("e","__minus_gt",[(1)]),smalltalk.send("f","__minus_gt",[(2)]),smalltalk.send("g","__minus_gt",[(10)])]);
813
+ return $1;
814
+ },
784
815
  args: [],
785
- source: "testCopying\x0a\x09self assert: 1 copy == 1.\x0a\x09self assert: 1 deepCopy == 1",
786
- messageSends: ["assert:", "==", "copy", "deepCopy"],
816
+ source: "collectionWithDuplicates\x0a\x09^ #{ 'a' -> 1. 'b' -> 2. 'c' -> 3. 'd' -> -4. 'e' -> 1. 'f' -> 2. 'g' -> 10 }",
817
+ messageSends: ["->"],
787
818
  referencedClasses: []
788
819
  }),
789
- smalltalk.NumberTest);
820
+ smalltalk.HashedCollectionTest);
821
+
790
822
 
791
823
  smalltalk.addMethod(
792
- "_testEquality",
824
+ "_collectionClass",
793
825
  smalltalk.method({
794
- selector: "testEquality",
795
- category: 'tests',
826
+ selector: "collectionClass",
827
+ category: 'accessing',
796
828
  fn: function (){
797
829
  var self=this;
798
- smalltalk.send(self, "_assert_", [smalltalk.send((1), "__eq", [(1)])]);
799
- smalltalk.send(self, "_assert_", [smalltalk.send((0), "__eq", [(0)])]);
800
- smalltalk.send(self, "_deny_", [smalltalk.send((1), "__eq", [(0)])]);
801
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_yourself", []), "__eq", [(1)])]);
802
- smalltalk.send(self, "_assert_", [smalltalk.send((1), "__eq", [smalltalk.send((1), "_yourself", [])])]);
803
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_yourself", []), "__eq", [smalltalk.send((1), "_yourself", [])])]);
804
- smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq", [false])]);
805
- smalltalk.send(self, "_deny_", [smalltalk.send(false, "__eq", [(0)])]);
806
- smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq", [(0)])]);
807
- smalltalk.send(self, "_deny_", [smalltalk.send((0), "__eq", [""])]);
808
- return self;},
830
+ return (smalltalk.HashedCollection || HashedCollection);
831
+ },
809
832
  args: [],
810
- source: "testEquality\x0a\x09self assert: 1 = 1.\x0a\x09self assert: 0 = 0.\x0a\x09self deny: 1 = 0.\x0a\x0a\x09self assert: 1 yourself = 1.\x0a\x09self assert: 1 = 1 yourself.\x0a\x09self assert: 1 yourself = 1 yourself.\x0a\x09\x0a\x09self deny: 0 = false.\x0a\x09self deny: false = 0.\x0a\x09self deny: '' = 0.\x0a\x09self deny: 0 = ''",
811
- messageSends: ["assert:", "=", "deny:", "yourself"],
812
- referencedClasses: []
833
+ source: "collectionClass\x0a\x09^ HashedCollection",
834
+ messageSends: [],
835
+ referencedClasses: ["HashedCollection"]
813
836
  }),
814
- smalltalk.NumberTest);
837
+ smalltalk.HashedCollectionTest.klass);
838
+
815
839
 
840
+ smalltalk.addClass('DictionaryTest', smalltalk.HashedCollectionTest, [], 'Kernel-Tests');
816
841
  smalltalk.addMethod(
817
- "_testIdentity",
842
+ "_collection",
818
843
  smalltalk.method({
819
- selector: "testIdentity",
820
- category: 'tests',
844
+ selector: "collection",
845
+ category: 'accessing',
821
846
  fn: function (){
822
847
  var self=this;
823
- smalltalk.send(self, "_assert_", [smalltalk.send((1), "__eq_eq", [(1)])]);
824
- smalltalk.send(self, "_assert_", [smalltalk.send((0), "__eq_eq", [(0)])]);
825
- smalltalk.send(self, "_deny_", [smalltalk.send((1), "__eq_eq", [(0)])]);
826
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_yourself", []), "__eq_eq", [(1)])]);
827
- smalltalk.send(self, "_assert_", [smalltalk.send((1), "__eq_eq", [smalltalk.send((1), "_yourself", [])])]);
828
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((1), "_yourself", []), "__eq_eq", [smalltalk.send((1), "_yourself", [])])]);
829
- smalltalk.send(self, "_deny_", [smalltalk.send((1), "__eq_eq", [(2)])]);
830
- return self;},
848
+ var $2,$3,$1;
849
+ $2=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
850
+ smalltalk.send($2,"_at_put_",[(1),(1)]);
851
+ smalltalk.send($2,"_at_put_",["a",(2)]);
852
+ smalltalk.send($2,"_at_put_",[true,(3)]);
853
+ smalltalk.send($2,"_at_put_",[(4),(-4)]);
854
+ $3=smalltalk.send($2,"_yourself",[]);
855
+ $1=$3;
856
+ return $1;
857
+ },
831
858
  args: [],
832
- source: "testIdentity\x0a\x09self assert: 1 == 1.\x0a\x09self assert: 0 == 0.\x0a\x09self deny: 1 == 0.\x0a\x0a\x09self assert: 1 yourself == 1.\x0a\x09self assert: 1 == 1 yourself.\x0a\x09self assert: 1 yourself == 1 yourself.\x0a\x09\x0a\x09self deny: 1 == 2",
833
- messageSends: ["assert:", "==", "deny:", "yourself"],
834
- referencedClasses: []
859
+ source: "collection\x0a\x09^ Dictionary new\x0a\x09\x09at: 1 put: 1;\x0a\x09\x09at: 'a' put: 2;\x0a\x09\x09at: true put: 3;\x0a\x09\x09at: 4 put: -4;\x0a\x09\x09yourself",
860
+ messageSends: ["at:put:", "new", "yourself"],
861
+ referencedClasses: ["Dictionary"]
835
862
  }),
836
- smalltalk.NumberTest);
863
+ smalltalk.DictionaryTest);
837
864
 
838
865
  smalltalk.addMethod(
839
- "_testMinMax",
866
+ "_collectionWithDuplicates",
840
867
  smalltalk.method({
841
- selector: "testMinMax",
842
- category: 'tests',
868
+ selector: "collectionWithDuplicates",
869
+ category: 'accessing',
843
870
  fn: function (){
844
871
  var self=this;
845
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((2), "_max_", [(5)]), (5)]);
846
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((2), "_min_", [(5)]), (2)]);
847
- return self;},
848
- args: [],
849
- source: "testMinMax\x0a\x09\x0a\x09self assert: (2 max: 5) equals: 5.\x0a\x09self assert: (2 min: 5) equals: 2",
850
- messageSends: ["assert:equals:", "max:", "min:"],
851
- referencedClasses: []
872
+ var $2,$3,$1;
873
+ $2=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
874
+ smalltalk.send($2,"_at_put_",[(1),(1)]);
875
+ smalltalk.send($2,"_at_put_",["a",(2)]);
876
+ smalltalk.send($2,"_at_put_",[true,(3)]);
877
+ smalltalk.send($2,"_at_put_",[(4),(-4)]);
878
+ smalltalk.send($2,"_at_put_",["b",(1)]);
879
+ smalltalk.send($2,"_at_put_",[(3),(3)]);
880
+ smalltalk.send($2,"_at_put_",[false,(12)]);
881
+ $3=smalltalk.send($2,"_yourself",[]);
882
+ $1=$3;
883
+ return $1;
884
+ },
885
+ args: [],
886
+ source: "collectionWithDuplicates\x0a\x09^ Dictionary new\x0a\x09\x09at: 1 put: 1;\x0a\x09\x09at: 'a' put: 2;\x0a\x09\x09at: true put: 3;\x0a\x09\x09at: 4 put: -4;\x0a\x09\x09at: 'b' put: 1;\x0a\x09\x09at: 3 put: 3;\x0a\x09\x09at: false put: 12;\x0a\x09\x09yourself",
887
+ messageSends: ["at:put:", "new", "yourself"],
888
+ referencedClasses: ["Dictionary"]
852
889
  }),
853
- smalltalk.NumberTest);
890
+ smalltalk.DictionaryTest);
854
891
 
855
892
  smalltalk.addMethod(
856
- "_testNegated",
893
+ "_testAccessing",
857
894
  smalltalk.method({
858
- selector: "testNegated",
895
+ selector: "testAccessing",
859
896
  category: 'tests',
860
897
  fn: function (){
861
898
  var self=this;
862
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "_negated", []), "__eq", [(-3)])]);
863
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((-3), "_negated", []), "__eq", [(3)])]);
864
- return self;},
899
+ var d;
900
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
901
+ smalltalk.send(d,"_at_put_",["hello","world"]);
902
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_at_",["hello"]),"__eq",["world"])]);
903
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_at_ifAbsent_",["hello",(function(){
904
+ return nil;
905
+ })]),"__eq",["world"])]);
906
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send(d,"_at_ifAbsent_",["foo",(function(){
907
+ return nil;
908
+ })]),"__eq",["world"])]);
909
+ smalltalk.send(d,"_at_put_",[(1),(2)]);
910
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_at_",[(1)]),"__eq",[(2)])]);
911
+ smalltalk.send(d,"_at_put_",[smalltalk.send((1),"__at",[(3)]),(3)]);
912
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_at_",[smalltalk.send((1),"__at",[(3)])]),"__eq",[(3)])]);
913
+ return self},
865
914
  args: [],
866
- source: "testNegated\x0a\x09self assert: 3 negated = -3.\x0a\x09self assert: -3 negated = 3",
867
- messageSends: ["assert:", "=", "negated"],
868
- referencedClasses: []
915
+ source: "testAccessing\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x0a\x09d at: 'hello' put: 'world'.\x0a\x09self assert: (d at: 'hello') = 'world'.\x0a\x09self assert: (d at: 'hello' ifAbsent: [nil]) = 'world'.\x0a\x09self deny: (d at: 'foo' ifAbsent: [nil]) = 'world'.\x0a\x0a\x09d at: 1 put: 2.\x0a\x09self assert: (d at: 1) = 2.\x0a\x0a\x09d at: 1@3 put: 3.\x0a\x09self assert: (d at: 1@3) = 3",
916
+ messageSends: ["new", "at:put:", "assert:", "=", "at:", "at:ifAbsent:", "deny:", "@"],
917
+ referencedClasses: ["Dictionary"]
869
918
  }),
870
- smalltalk.NumberTest);
919
+ smalltalk.DictionaryTest);
871
920
 
872
921
  smalltalk.addMethod(
873
- "_testPrintShowingDecimalPlaces",
922
+ "_testDynamicDictionaries",
874
923
  smalltalk.method({
875
- selector: "testPrintShowingDecimalPlaces",
924
+ selector: "testDynamicDictionaries",
876
925
  category: 'tests',
877
926
  fn: function (){
878
927
  var self=this;
879
- smalltalk.send(self, "_assert_equals_", ["23.00", smalltalk.send((23), "_printShowingDecimalPlaces_", [(2)])]);
880
- smalltalk.send(self, "_assert_equals_", ["23.57", smalltalk.send((23.5698), "_printShowingDecimalPlaces_", [(2)])]);
881
- smalltalk.send(self, "_assert_equals_", ["-234.56700", smalltalk.send(smalltalk.send((234.567), "_negated", []), "_printShowingDecimalPlaces_", [(5)])]);
882
- smalltalk.send(self, "_assert_equals_", ["23", smalltalk.send((23.4567), "_printShowingDecimalPlaces_", [(0)])]);
883
- smalltalk.send(self, "_assert_equals_", ["24", smalltalk.send((23.5567), "_printShowingDecimalPlaces_", [(0)])]);
884
- smalltalk.send(self, "_assert_equals_", ["-23", smalltalk.send(smalltalk.send((23.4567), "_negated", []), "_printShowingDecimalPlaces_", [(0)])]);
885
- smalltalk.send(self, "_assert_equals_", ["-24", smalltalk.send(smalltalk.send((23.5567), "_negated", []), "_printShowingDecimalPlaces_", [(0)])]);
886
- smalltalk.send(self, "_assert_equals_", ["100000000.0", smalltalk.send((100000000), "_printShowingDecimalPlaces_", [(1)])]);
887
- smalltalk.send(self, "_assert_equals_", ["0.98000", smalltalk.send((0.98), "_printShowingDecimalPlaces_", [(5)])]);
888
- smalltalk.send(self, "_assert_equals_", ["-0.98", smalltalk.send(smalltalk.send((0.98), "_negated", []), "_printShowingDecimalPlaces_", [(2)])]);
889
- smalltalk.send(self, "_assert_equals_", ["2.57", smalltalk.send((2.567), "_printShowingDecimalPlaces_", [(2)])]);
890
- smalltalk.send(self, "_assert_equals_", ["-2.57", smalltalk.send((-2.567), "_printShowingDecimalPlaces_", [(2)])]);
891
- smalltalk.send(self, "_assert_equals_", ["0.00", smalltalk.send((0), "_printShowingDecimalPlaces_", [(2)])]);
892
- return self;},
928
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.HashedCollection._fromPairs_([smalltalk.send("hello","__minus_gt",[(1)])]),"_asDictionary",[]),"__eq",[smalltalk.send((smalltalk.Dictionary || Dictionary),"_with_",[smalltalk.send("hello","__minus_gt",[(1)])])])]);
929
+ return self},
893
930
  args: [],
894
- source: "testPrintShowingDecimalPlaces\x0a\x09self assert: '23.00' equals: (23 printShowingDecimalPlaces: 2).\x0a\x09self assert: '23.57' equals: (23.5698 printShowingDecimalPlaces: 2).\x0a\x09self assert: '-234.56700' equals:( 234.567 negated printShowingDecimalPlaces: 5).\x0a\x09self assert: '23' equals: (23.4567 printShowingDecimalPlaces: 0).\x0a\x09self assert: '24' equals: (23.5567 printShowingDecimalPlaces: 0).\x0a\x09self assert: '-23' equals: (23.4567 negated printShowingDecimalPlaces: 0).\x0a\x09self assert: '-24' equals: (23.5567 negated printShowingDecimalPlaces: 0).\x0a\x09self assert: '100000000.0' equals: (100000000 printShowingDecimalPlaces: 1).\x0a\x09self assert: '0.98000' equals: (0.98 printShowingDecimalPlaces: 5).\x0a\x09self assert: '-0.98' equals: (0.98 negated printShowingDecimalPlaces: 2).\x0a\x09self assert: '2.57' equals: (2.567 printShowingDecimalPlaces: 2).\x0a\x09self assert: '-2.57' equals: (-2.567 printShowingDecimalPlaces: 2).\x0a\x09self assert: '0.00' equals: (0 printShowingDecimalPlaces: 2).",
895
- messageSends: ["assert:equals:", "printShowingDecimalPlaces:", "negated"],
896
- referencedClasses: []
931
+ source: "testDynamicDictionaries\x0a\x09self assert: #{'hello' -> 1} asDictionary = (Dictionary with: 'hello' -> 1)",
932
+ messageSends: ["assert:", "=", "with:", "->", "asDictionary"],
933
+ referencedClasses: ["Dictionary"]
897
934
  }),
898
- smalltalk.NumberTest);
935
+ smalltalk.DictionaryTest);
899
936
 
900
937
  smalltalk.addMethod(
901
- "_testRounded",
938
+ "_testEquality",
902
939
  smalltalk.method({
903
- selector: "testRounded",
940
+ selector: "testEquality",
904
941
  category: 'tests',
905
942
  fn: function (){
906
943
  var self=this;
907
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "_rounded", []), "__eq", [(3)])]);
908
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.212), "_rounded", []), "__eq", [(3)])]);
909
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.51), "_rounded", []), "__eq", [(4)])]);
910
- return self;},
944
+ var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10;
945
+ var d1;
946
+ var d2;
947
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]),"__eq",[smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[])])]);
948
+ $1=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
949
+ smalltalk.send($1,"_at_put_",[(1),(2)]);
950
+ $2=smalltalk.send($1,"_yourself",[]);
951
+ d1=$2;
952
+ $3=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
953
+ smalltalk.send($3,"_at_put_",[(1),(2)]);
954
+ $4=smalltalk.send($3,"_yourself",[]);
955
+ d2=$4;
956
+ smalltalk.send(self,"_assert_",[smalltalk.send(d1,"__eq",[d2])]);
957
+ $5=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
958
+ smalltalk.send($5,"_at_put_",[(1),(3)]);
959
+ $6=smalltalk.send($5,"_yourself",[]);
960
+ d2=$6;
961
+ smalltalk.send(self,"_deny_",[smalltalk.send(d1,"__eq",[d2])]);
962
+ $7=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
963
+ smalltalk.send($7,"_at_put_",[(2),(2)]);
964
+ $8=smalltalk.send($7,"_yourself",[]);
965
+ d2=$8;
966
+ smalltalk.send(self,"_deny_",[smalltalk.send(d1,"__eq",[d2])]);
967
+ $9=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
968
+ smalltalk.send($9,"_at_put_",[(1),(2)]);
969
+ smalltalk.send($9,"_at_put_",[(3),(4)]);
970
+ $10=smalltalk.send($9,"_yourself",[]);
971
+ d2=$10;
972
+ smalltalk.send(self,"_deny_",[smalltalk.send(d1,"__eq",[d2])]);
973
+ return self},
911
974
  args: [],
912
- source: "testRounded\x0a\x09\x0a\x09self assert: 3 rounded = 3.\x0a\x09self assert: 3.212 rounded = 3.\x0a\x09self assert: 3.51 rounded = 4",
913
- messageSends: ["assert:", "=", "rounded"],
914
- referencedClasses: []
975
+ source: "testEquality\x0a\x09| d1 d2 |\x0a\x0a\x09self assert: Dictionary new = Dictionary new.\x0a\x09\x09\x0a\x09d1 := Dictionary new at: 1 put: 2; yourself.\x0a\x09d2 := Dictionary new at: 1 put: 2; yourself.\x0a\x09self assert: d1 = d2.\x0a\x0a\x09d2 := Dictionary new at: 1 put: 3; yourself.\x0a\x09self deny: d1 = d2.\x0a\x0a\x09d2 := Dictionary new at: 2 put: 2; yourself.\x0a\x09self deny: d1 = d2.\x0a\x0a\x09d2 := Dictionary new at: 1 put: 2; at: 3 put: 4; yourself.\x0a\x09self deny: d1 = d2.",
976
+ messageSends: ["assert:", "=", "new", "at:put:", "yourself", "deny:"],
977
+ referencedClasses: ["Dictionary"]
915
978
  }),
916
- smalltalk.NumberTest);
979
+ smalltalk.DictionaryTest);
917
980
 
918
981
  smalltalk.addMethod(
919
- "_testSqrt",
982
+ "_testIfAbsent",
920
983
  smalltalk.method({
921
- selector: "testSqrt",
984
+ selector: "testIfAbsent",
922
985
  category: 'tests',
923
986
  fn: function (){
924
987
  var self=this;
925
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((4), "_sqrt", []), "__eq", [(2)])]);
926
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((16), "_sqrt", []), "__eq", [(4)])]);
927
- return self;},
988
+ var d;
989
+ var visited;
990
+ visited=false;
991
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
992
+ smalltalk.send(d,"_at_ifAbsent_",["hello",(function(){
993
+ visited=true;
994
+ return visited;
995
+ })]);
996
+ smalltalk.send(self,"_assert_",[visited]);
997
+ return self},
928
998
  args: [],
929
- source: "testSqrt\x0a\x09\x0a\x09self assert: 4 sqrt = 2.\x0a\x09self assert: 16 sqrt = 4",
930
- messageSends: ["assert:", "=", "sqrt"],
931
- referencedClasses: []
999
+ source: "testIfAbsent\x0a\x0a\x09| d visited |\x0a\x09visited := false.\x0a\x09d := Dictionary new.\x0a\x0a\x09d at: 'hello' ifAbsent: [ visited := true ].\x0a\x09self assert: visited.",
1000
+ messageSends: ["new", "at:ifAbsent:", "assert:"],
1001
+ referencedClasses: ["Dictionary"]
932
1002
  }),
933
- smalltalk.NumberTest);
1003
+ smalltalk.DictionaryTest);
934
1004
 
935
1005
  smalltalk.addMethod(
936
- "_testSquared",
1006
+ "_testIfPresent",
937
1007
  smalltalk.method({
938
- selector: "testSquared",
1008
+ selector: "testIfPresent",
939
1009
  category: 'tests',
940
1010
  fn: function (){
941
1011
  var self=this;
942
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((4), "_squared", []), "__eq", [(16)])]);
943
- return self;},
1012
+ var d;
1013
+ var visited;
1014
+ var absent;
1015
+ visited=false;
1016
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1017
+ smalltalk.send(d,"_at_put_",["hello","world"]);
1018
+ smalltalk.send(d,"_at_ifPresent_",["hello",(function(value){
1019
+ visited=value;
1020
+ return visited;
1021
+ })]);
1022
+ smalltalk.send(self,"_assert_",[smalltalk.send(visited,"__eq",["world"])]);
1023
+ absent=smalltalk.send(d,"_at_ifPresent_",["bye",(function(value){
1024
+ visited=value;
1025
+ return visited;
1026
+ })]);
1027
+ smalltalk.send(self,"_assert_",[smalltalk.send(absent,"_isNil",[])]);
1028
+ return self},
944
1029
  args: [],
945
- source: "testSquared\x0a\x09\x0a\x09self assert: 4 squared = 16",
946
- messageSends: ["assert:", "=", "squared"],
947
- referencedClasses: []
1030
+ source: "testIfPresent\x0a\x0a\x09| d visited absent |\x0a\x09visited := false.\x0a\x09d := Dictionary new.\x0a\x09d at: 'hello' put: 'world'.\x0a\x0a\x09d at: 'hello' ifPresent: [ :value | visited := value ].\x0a\x09self assert: visited = 'world'.\x0a\x0a\x09absent := d at: 'bye' ifPresent: [ :value | visited := value ].\x0a\x09self assert: absent isNil.\x0a",
1031
+ messageSends: ["new", "at:put:", "at:ifPresent:", "assert:", "=", "isNil"],
1032
+ referencedClasses: ["Dictionary"]
948
1033
  }),
949
- smalltalk.NumberTest);
1034
+ smalltalk.DictionaryTest);
950
1035
 
951
1036
  smalltalk.addMethod(
952
- "_testTimesRepeat",
1037
+ "_testIfPresentIfAbsent",
1038
+ smalltalk.method({
1039
+ selector: "testIfPresentIfAbsent",
1040
+ category: 'tests',
1041
+ fn: function (){
1042
+ var self=this;
1043
+ var d;
1044
+ var visited;
1045
+ visited=false;
1046
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1047
+ smalltalk.send(d,"_at_put_",["hello","world"]);
1048
+ smalltalk.send(d,"_at_ifPresent_ifAbsent_",["hello",(function(value){
1049
+ visited=value;
1050
+ return visited;
1051
+ }),(function(){
1052
+ visited=true;
1053
+ return visited;
1054
+ })]);
1055
+ smalltalk.send(self,"_assert_",[smalltalk.send(visited,"__eq",["world"])]);
1056
+ smalltalk.send(d,"_at_ifPresent_ifAbsent_",["buy",(function(value){
1057
+ visited=value;
1058
+ return visited;
1059
+ }),(function(){
1060
+ visited=true;
1061
+ return visited;
1062
+ })]);
1063
+ smalltalk.send(self,"_assert_",[visited]);
1064
+ return self},
1065
+ args: [],
1066
+ source: "testIfPresentIfAbsent\x0a\x0a\x09| d visited |\x0a\x09visited := false.\x0a\x09d := Dictionary new.\x0a\x09d at: 'hello' put: 'world'.\x0a\x0a\x09d at: 'hello' ifPresent: [ :value | visited := value ] ifAbsent: [ visited := true ].\x0a\x09self assert: visited = 'world'.\x0a\x0a\x09d at: 'buy' ifPresent: [ :value | visited := value ] ifAbsent: [ visited := true ].\x0a\x09self assert: visited.",
1067
+ messageSends: ["new", "at:put:", "at:ifPresent:ifAbsent:", "assert:", "="],
1068
+ referencedClasses: ["Dictionary"]
1069
+ }),
1070
+ smalltalk.DictionaryTest);
1071
+
1072
+ smalltalk.addMethod(
1073
+ "_testKeys",
953
1074
  smalltalk.method({
954
- selector: "testTimesRepeat",
1075
+ selector: "testKeys",
955
1076
  category: 'tests',
956
1077
  fn: function (){
957
1078
  var self=this;
958
- var i=nil;
959
- (i=(0));
960
- smalltalk.send((0), "_timesRepeat_", [(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]);
961
- smalltalk.send(self, "_assert_equals_", [i, (0)]);
962
- smalltalk.send((5), "_timesRepeat_", [(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]);
963
- smalltalk.send(self, "_assert_equals_", [i, (5)]);
964
- return self;},
1079
+ var d;
1080
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1081
+ smalltalk.send(d,"_at_put_",[(1),(2)]);
1082
+ smalltalk.send(d,"_at_put_",[(2),(3)]);
1083
+ smalltalk.send(d,"_at_put_",[(3),(4)]);
1084
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_keys",[]),"__eq",[[(1), (2), (3)]])]);
1085
+ return self},
965
1086
  args: [],
966
- source: "testTimesRepeat\x0a\x09| i |\x0a\x0a\x09i := 0.\x0a\x090 timesRepeat: [i := i + 1].\x0a\x09self assert: i equals: 0.\x0a\x0a\x095 timesRepeat: [i := i + 1].\x0a\x09self assert: i equals: 5",
967
- messageSends: ["timesRepeat:", "+", "assert:equals:"],
968
- referencedClasses: []
1087
+ source: "testKeys\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x09d at: 1 put: 2.\x0a\x09d at: 2 put: 3.\x0a\x09d at: 3 put: 4.\x0a\x0a\x09self assert: d keys = #(1 2 3)",
1088
+ messageSends: ["new", "at:put:", "assert:", "=", "keys"],
1089
+ referencedClasses: ["Dictionary"]
969
1090
  }),
970
- smalltalk.NumberTest);
1091
+ smalltalk.DictionaryTest);
971
1092
 
972
1093
  smalltalk.addMethod(
973
- "_testTo",
1094
+ "_testPrintString",
974
1095
  smalltalk.method({
975
- selector: "testTo",
1096
+ selector: "testPrintString",
976
1097
  category: 'tests',
977
1098
  fn: function (){
978
1099
  var self=this;
979
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((1), "_to_", [(5)]), [(1), (2), (3), (4), (5)]]);
980
- return self;},
1100
+ var $1,$2;
1101
+ $1=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1102
+ smalltalk.send($1,"_at_put_",["firstname","James"]);
1103
+ smalltalk.send($1,"_at_put_",["lastname","Bond"]);
1104
+ $2=smalltalk.send($1,"_printString",[]);
1105
+ smalltalk.send(self,"_assert_equals_",["a Dictionary('firstname'->'James' , 'lastname'->'Bond')",$2]);
1106
+ return self},
981
1107
  args: [],
982
- source: "testTo\x0a\x09self assert: (1 to: 5) equals: #(1 2 3 4 5)",
983
- messageSends: ["assert:equals:", "to:"],
984
- referencedClasses: []
1108
+ source: "testPrintString\x0a\x09self\x0a\x09\x09assert: 'a Dictionary(''firstname''->''James'' , ''lastname''->''Bond'')' \x0a\x09\x09equals: (Dictionary new \x0a \x09at:'firstname' put: 'James';\x0a \x09at:'lastname' put: 'Bond';\x0a \x09printString)",
1109
+ messageSends: ["assert:equals:", "at:put:", "new", "printString"],
1110
+ referencedClasses: ["Dictionary"]
985
1111
  }),
986
- smalltalk.NumberTest);
1112
+ smalltalk.DictionaryTest);
987
1113
 
988
1114
  smalltalk.addMethod(
989
- "_testToBy",
1115
+ "_testRemoveKey",
990
1116
  smalltalk.method({
991
- selector: "testToBy",
1117
+ selector: "testRemoveKey",
992
1118
  category: 'tests',
993
1119
  fn: function (){
994
1120
  var self=this;
995
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((0), "_to_by_", [(6), (2)]), [(0), (2), (4), (6)]]);
996
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send((1), "_to_by_", [(4), (0)]);}), (smalltalk.Error || Error)]);
997
- return self;},
1121
+ var d;
1122
+ var key;
1123
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1124
+ smalltalk.send(d,"_at_put_",[(1),(2)]);
1125
+ smalltalk.send(d,"_at_put_",[(2),(3)]);
1126
+ smalltalk.send(d,"_at_put_",[(3),(4)]);
1127
+ key=(2);
1128
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_keys",[]),"__eq",[[(1), (2), (3)]])]);
1129
+ smalltalk.send(d,"_removeKey_",[key]);
1130
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_keys",[]),"__eq",[[(1), (3)]])]);
1131
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_values",[]),"__eq",[[(2), (4)]])]);
1132
+ smalltalk.send(self,"_deny_",[smalltalk.send(d,"_includesKey_",[(2)])]);
1133
+ return self},
998
1134
  args: [],
999
- source: "testToBy\x0a\x09self assert: (0 to: 6 by: 2) equals: #(0 2 4 6).\x0a\x0a\x09self should: [1 to: 4 by: 0] raise: Error",
1000
- messageSends: ["assert:equals:", "to:by:", "should:raise:"],
1001
- referencedClasses: ["Error"]
1135
+ source: "testRemoveKey\x0a | d key |\x0a\x0a d := Dictionary new.\x0a d at: 1 put: 2.\x0a d at: 2 put: 3.\x0a d at: 3 put: 4.\x0a\x0a key := 2.\x0a\x0a self assert: d keys = #(1 2 3).\x0a\x0a d removeKey: key.\x0a self assert: d keys = #(1 3).\x0a self assert: d values = #(2 4).\x0a self deny: (d includesKey: 2)",
1136
+ messageSends: ["new", "at:put:", "assert:", "=", "keys", "removeKey:", "values", "deny:", "includesKey:"],
1137
+ referencedClasses: ["Dictionary"]
1002
1138
  }),
1003
- smalltalk.NumberTest);
1139
+ smalltalk.DictionaryTest);
1004
1140
 
1005
1141
  smalltalk.addMethod(
1006
- "_testTruncated",
1142
+ "_testRemoveKeyIfAbsent",
1007
1143
  smalltalk.method({
1008
- selector: "testTruncated",
1144
+ selector: "testRemoveKeyIfAbsent",
1009
1145
  category: 'tests',
1010
1146
  fn: function (){
1011
1147
  var self=this;
1012
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "_truncated", []), "__eq", [(3)])]);
1013
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.212), "_truncated", []), "__eq", [(3)])]);
1014
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3.51), "_truncated", []), "__eq", [(3)])]);
1015
- return self;},
1148
+ var d;
1149
+ var key;
1150
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1151
+ smalltalk.send(d,"_at_put_",[(1),(2)]);
1152
+ smalltalk.send(d,"_at_put_",[(2),(3)]);
1153
+ smalltalk.send(d,"_at_put_",[(3),(4)]);
1154
+ key=(2);
1155
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_removeKey_",[key]),"__eq",[(3)])]);
1156
+ key=(3);
1157
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_removeKey_ifAbsent_",[key,(function(){
1158
+ return (42);
1159
+ })]),"__eq",[(4)])]);
1160
+ key="why";
1161
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_removeKey_ifAbsent_",[key,(function(){
1162
+ return (42);
1163
+ })]),"__eq",[(42)])]);
1164
+ return self},
1016
1165
  args: [],
1017
- source: "testTruncated\x0a\x09\x0a\x09self assert: 3 truncated = 3.\x0a\x09self assert: 3.212 truncated = 3.\x0a\x09self assert: 3.51 truncated = 3",
1018
- messageSends: ["assert:", "=", "truncated"],
1019
- referencedClasses: []
1166
+ source: "testRemoveKeyIfAbsent\x0a | d key |\x0a\x0a d := Dictionary new.\x0a d at: 1 put: 2.\x0a d at: 2 put: 3.\x0a d at: 3 put: 4.\x0a\x0a key := 2.\x0a self assert: (d removeKey: key) = 3.\x0a\x0a key := 3.\x0a self assert: (d removeKey: key ifAbsent: [42]) = 4.\x0a\x0a key := 'why'.\x0a self assert: (d removeKey: key ifAbsent: [42] ) = 42.",
1167
+ messageSends: ["new", "at:put:", "assert:", "=", "removeKey:", "removeKey:ifAbsent:"],
1168
+ referencedClasses: ["Dictionary"]
1020
1169
  }),
1021
- smalltalk.NumberTest);
1022
-
1023
-
1170
+ smalltalk.DictionaryTest);
1024
1171
 
1025
- smalltalk.addClass('ObjectMock', smalltalk.Object, ['foo', 'bar'], 'Kernel-Tests');
1026
1172
  smalltalk.addMethod(
1027
- "_foo",
1173
+ "_testSize",
1028
1174
  smalltalk.method({
1029
- selector: "foo",
1030
- category: 'not yet classified',
1175
+ selector: "testSize",
1176
+ category: 'tests',
1031
1177
  fn: function (){
1032
1178
  var self=this;
1033
- return self['@foo'];
1034
- return self;},
1179
+ var d;
1180
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1181
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_size",[]),"__eq",[(0)])]);
1182
+ smalltalk.send(d,"_at_put_",[(1),(2)]);
1183
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_size",[]),"__eq",[(1)])]);
1184
+ smalltalk.send(d,"_at_put_",[(2),(3)]);
1185
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_size",[]),"__eq",[(2)])]);
1186
+ return self},
1035
1187
  args: [],
1036
- source: "foo\x0a\x09^foo",
1037
- messageSends: [],
1038
- referencedClasses: []
1188
+ source: "testSize\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x09self assert: d size = 0.\x0a\x0a\x09d at: 1 put: 2.\x0a\x09self assert: d size = 1.\x0a\x0a\x09d at: 2 put: 3.\x0a\x09self assert: d size = 2.",
1189
+ messageSends: ["new", "assert:", "=", "size", "at:put:"],
1190
+ referencedClasses: ["Dictionary"]
1039
1191
  }),
1040
- smalltalk.ObjectMock);
1192
+ smalltalk.DictionaryTest);
1041
1193
 
1042
1194
  smalltalk.addMethod(
1043
- "_foo_",
1195
+ "_testValues",
1044
1196
  smalltalk.method({
1045
- selector: "foo:",
1046
- category: 'not yet classified',
1047
- fn: function (anObject){
1197
+ selector: "testValues",
1198
+ category: 'tests',
1199
+ fn: function (){
1048
1200
  var self=this;
1049
- (self['@foo']=anObject);
1050
- return self;},
1051
- args: ["anObject"],
1052
- source: "foo: anObject\x0a\x09foo := anObject",
1053
- messageSends: [],
1054
- referencedClasses: []
1201
+ var d;
1202
+ d=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
1203
+ smalltalk.send(d,"_at_put_",[(1),(2)]);
1204
+ smalltalk.send(d,"_at_put_",[(2),(3)]);
1205
+ smalltalk.send(d,"_at_put_",[(3),(4)]);
1206
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(d,"_values",[]),"__eq",[[(2), (3), (4)]])]);
1207
+ return self},
1208
+ args: [],
1209
+ source: "testValues\x0a\x09| d |\x0a\x0a\x09d := Dictionary new.\x0a\x09d at: 1 put: 2.\x0a\x09d at: 2 put: 3.\x0a\x09d at: 3 put: 4.\x0a\x0a\x09self assert: d values = #(2 3 4)",
1210
+ messageSends: ["new", "at:put:", "assert:", "=", "values"],
1211
+ referencedClasses: ["Dictionary"]
1055
1212
  }),
1056
- smalltalk.ObjectMock);
1057
-
1213
+ smalltalk.DictionaryTest);
1058
1214
 
1059
1215
 
1060
- smalltalk.addClass('ObjectTest', smalltalk.TestCase, [], 'Kernel-Tests');
1061
1216
  smalltalk.addMethod(
1062
- "_testBasicAccess",
1217
+ "_collectionClass",
1063
1218
  smalltalk.method({
1064
- selector: "testBasicAccess",
1065
- category: 'tests',
1219
+ selector: "collectionClass",
1220
+ category: 'accessing',
1066
1221
  fn: function (){
1067
1222
  var self=this;
1068
- var o=nil;
1069
- (o=smalltalk.send((smalltalk.Object || Object), "_new", []));
1070
- smalltalk.send(o, "_basicAt_put_", ["a", (1)]);
1071
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicAt_", ["a"]), (1)]);
1072
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicAt_", ["b"]), nil]);
1073
- return self;},
1223
+ return (smalltalk.Dictionary || Dictionary);
1224
+ },
1074
1225
  args: [],
1075
- source: "testBasicAccess\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09o basicAt: 'a' put: 1.\x0a\x09self assert: (o basicAt: 'a') equals: 1.\x0a\x09self assert: (o basicAt: 'b') equals: nil",
1076
- messageSends: ["new", "basicAt:put:", "assert:equals:", "basicAt:"],
1077
- referencedClasses: ["Object"]
1226
+ source: "collectionClass\x0a\x09^ Dictionary",
1227
+ messageSends: [],
1228
+ referencedClasses: ["Dictionary"]
1078
1229
  }),
1079
- smalltalk.ObjectTest);
1230
+ smalltalk.DictionaryTest.klass);
1080
1231
 
1232
+
1233
+ smalltalk.addClass('SequenceableCollectionTest', smalltalk.CollectionTest, [], 'Kernel-Tests');
1081
1234
  smalltalk.addMethod(
1082
- "_testBasicPerform",
1235
+ "_testAt",
1083
1236
  smalltalk.method({
1084
- selector: "testBasicPerform",
1237
+ selector: "testAt",
1085
1238
  category: 'tests',
1086
1239
  fn: function (){
1087
1240
  var self=this;
1088
- var o=nil;
1089
- (o=smalltalk.send((smalltalk.Object || Object), "_new", []));
1090
- smalltalk.send(o, "_basicAt_put_", ["func", (function(){return "hello";})]);
1091
- smalltalk.send(o, "_basicAt_put_", ["func2", (function(a){return ((($receiver = a).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
1092
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicPerform_", ["func"]), "hello"]);
1093
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicPerform_withArguments_", ["func2", [(3)]]), (4)]);
1094
- return self;},
1241
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_at_",[(4)]),"__eq",[(-4)])]);
1242
+ smalltalk.send(self,"_should_raise_",[(function(){
1243
+ return smalltalk.send(smalltalk.send(self,"_collection",[]),"_at_",[(5)]);
1244
+ }),(smalltalk.Error || Error)]);
1245
+ return self},
1095
1246
  args: [],
1096
- source: "testBasicPerform\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09o basicAt: 'func' put: ['hello'].\x09\x0a\x09o basicAt: 'func2' put: [:a | a + 1].\x0a\x0a\x09self assert: (o basicPerform: 'func')\x09 equals: 'hello'.\x0a\x09self assert: (o basicPerform: 'func2' withArguments: #(3)) equals: 4",
1097
- messageSends: ["new", "basicAt:put:", "+", "assert:equals:", "basicPerform:", "basicPerform:withArguments:"],
1098
- referencedClasses: ["Object"]
1247
+ source: "testAt\x0a\x09self assert: (self collection at: 4) = -4.\x0a\x09self should: [ self collection at: 5 ] raise: Error",
1248
+ messageSends: ["assert:", "=", "at:", "collection", "should:raise:"],
1249
+ referencedClasses: ["Error"]
1099
1250
  }),
1100
- smalltalk.ObjectTest);
1251
+ smalltalk.SequenceableCollectionTest);
1101
1252
 
1102
1253
  smalltalk.addMethod(
1103
- "_testDNU",
1254
+ "_testAtIfAbsent",
1104
1255
  smalltalk.method({
1105
- selector: "testDNU",
1256
+ selector: "testAtIfAbsent",
1106
1257
  category: 'tests',
1107
1258
  fn: function (){
1108
1259
  var self=this;
1109
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_new", []), "_foo", []);}), (smalltalk.MessageNotUnderstood || MessageNotUnderstood)]);
1110
- return self;},
1260
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_at_ifAbsent_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_size",[]),"__plus",[(1)]),(function(){
1261
+ return "none";
1262
+ })]),"__eq",["none"])]);
1263
+ return self},
1111
1264
  args: [],
1112
- source: "testDNU\x0a\x09self should: [Object new foo] raise: MessageNotUnderstood",
1113
- messageSends: ["should:raise:", "foo", "new"],
1114
- referencedClasses: ["Object", "MessageNotUnderstood"]
1265
+ source: "testAtIfAbsent\x0a\x09self assert: (self collection at: (self collection size + 1) ifAbsent: [ 'none' ]) = 'none'",
1266
+ messageSends: ["assert:", "=", "at:ifAbsent:", "+", "size", "collection"],
1267
+ referencedClasses: []
1115
1268
  }),
1116
- smalltalk.ObjectTest);
1269
+ smalltalk.SequenceableCollectionTest);
1270
+
1117
1271
 
1272
+
1273
+ smalltalk.addClass('ArrayTest', smalltalk.SequenceableCollectionTest, [], 'Kernel-Tests');
1118
1274
  smalltalk.addMethod(
1119
- "_testEquality",
1275
+ "_testAtIfAbsent",
1120
1276
  smalltalk.method({
1121
- selector: "testEquality",
1122
- category: 'tests',
1277
+ selector: "testAtIfAbsent",
1278
+ category: 'testing',
1123
1279
  fn: function (){
1124
1280
  var self=this;
1125
- var o=nil;
1126
- (o=smalltalk.send((smalltalk.Object || Object), "_new", []));
1127
- smalltalk.send(self, "_deny_", [smalltalk.send(o, "__eq", [smalltalk.send((smalltalk.Object || Object), "_new", [])])]);
1128
- smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq", [o])]);
1129
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq", [o])]);
1130
- smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq", [smalltalk.send(o, "_yourself", [])])]);
1131
- return self;},
1281
+ var array;
1282
+ array=["hello", "world"];
1283
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(array,"_at_",[(1)]),"hello"]);
1284
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(array,"_at_",[(2)]),"world"]);
1285
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(array,"_at_ifAbsent_",[(2),(function(){
1286
+ return "not found";
1287
+ })]),"world"]);
1288
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(array,"_at_ifAbsent_",[(0),(function(){
1289
+ return "not found";
1290
+ })]),"not found"]);
1291
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(array,"_at_ifAbsent_",[(-10),(function(){
1292
+ return "not found";
1293
+ })]),"not found"]);
1294
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(array,"_at_ifAbsent_",[(3),(function(){
1295
+ return "not found";
1296
+ })]),"not found"]);
1297
+ return self},
1132
1298
  args: [],
1133
- source: "testEquality\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09self deny: o = Object new.\x0a\x09self assert: o = o.\x0a\x09self assert: o yourself = o.\x0a\x09self assert: o = o yourself",
1134
- messageSends: ["new", "deny:", "=", "assert:", "yourself"],
1135
- referencedClasses: ["Object"]
1299
+ source: "testAtIfAbsent\x0a\x09| array |\x0a\x09array := #('hello' 'world').\x0a\x09self assert: (array at: 1) equals: 'hello'.\x0a\x09self assert: (array at: 2) equals: 'world'.\x0a\x09self assert: (array at: 2 ifAbsent: ['not found']) equals: 'world'.\x0a\x09self assert: (array at: 0 ifAbsent: ['not found']) equals: 'not found'.\x0a\x09self assert: (array at: -10 ifAbsent: ['not found']) equals: 'not found'.\x0a\x09self assert: (array at: 3 ifAbsent: ['not found']) equals: 'not found'.",
1300
+ messageSends: ["assert:equals:", "at:", "at:ifAbsent:"],
1301
+ referencedClasses: []
1136
1302
  }),
1137
- smalltalk.ObjectTest);
1303
+ smalltalk.ArrayTest);
1138
1304
 
1139
1305
  smalltalk.addMethod(
1140
- "_testHalt",
1306
+ "_testFirstN",
1141
1307
  smalltalk.method({
1142
- selector: "testHalt",
1143
- category: 'tests',
1308
+ selector: "testFirstN",
1309
+ category: 'testing',
1144
1310
  fn: function (){
1145
1311
  var self=this;
1146
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_new", []), "_halt", []);}), (smalltalk.Error || Error)]);
1147
- return self;},
1312
+ smalltalk.send(self,"_assert_equals_",[[(1),(2),(3)],smalltalk.send([(1),(2),(3),(4),(5)],"_first_",[(3)])]);
1313
+ return self},
1148
1314
  args: [],
1149
- source: "testHalt\x0a\x09self should: [Object new halt] raise: Error",
1150
- messageSends: ["should:raise:", "halt", "new"],
1151
- referencedClasses: ["Object", "Error"]
1315
+ source: "testFirstN\x0a\x09self assert: {1. 2. 3} equals: ({1. 2. 3. 4. 5} first: 3).",
1316
+ messageSends: ["assert:equals:", "first:"],
1317
+ referencedClasses: []
1152
1318
  }),
1153
- smalltalk.ObjectTest);
1319
+ smalltalk.ArrayTest);
1154
1320
 
1155
1321
  smalltalk.addMethod(
1156
- "_testIdentity",
1322
+ "_testIfEmpty",
1157
1323
  smalltalk.method({
1158
- selector: "testIdentity",
1159
- category: 'tests',
1324
+ selector: "testIfEmpty",
1325
+ category: 'testing',
1160
1326
  fn: function (){
1161
1327
  var self=this;
1162
- var o=nil;
1163
- (o=smalltalk.send((smalltalk.Object || Object), "_new", []));
1164
- smalltalk.send(self, "_deny_", [smalltalk.send(o, "__eq_eq", [smalltalk.send((smalltalk.Object || Object), "_new", [])])]);
1165
- smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq_eq", [o])]);
1166
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq_eq", [o])]);
1167
- smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq_eq", [smalltalk.send(o, "_yourself", [])])]);
1168
- return self;},
1328
+ smalltalk.send(self,"_assert_equals_",["zork",smalltalk.send("","_ifEmpty_",[(function(){
1329
+ return "zork";
1330
+ })])]);
1331
+ return self},
1169
1332
  args: [],
1170
- source: "testIdentity\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09self deny: o == Object new.\x0a\x09self assert: o == o.\x0a\x09self assert: o yourself == o.\x0a\x09self assert: o == o yourself",
1171
- messageSends: ["new", "deny:", "==", "assert:", "yourself"],
1172
- referencedClasses: ["Object"]
1333
+ source: "testIfEmpty\x0a\x09self assert: 'zork' equals: ( '' ifEmpty: ['zork'] )",
1334
+ messageSends: ["assert:equals:", "ifEmpty:"],
1335
+ referencedClasses: []
1173
1336
  }),
1174
- smalltalk.ObjectTest);
1337
+ smalltalk.ArrayTest);
1175
1338
 
1176
1339
  smalltalk.addMethod(
1177
- "_testIfNil",
1340
+ "_testPrintString",
1178
1341
  smalltalk.method({
1179
- selector: "testIfNil",
1180
- category: 'tests',
1342
+ selector: "testPrintString",
1343
+ category: 'testing',
1181
1344
  fn: function (){
1182
1345
  var self=this;
1183
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_new", []), "_isNil", [])]);
1184
- smalltalk.send(self, "_deny_", [smalltalk.send((($receiver = smalltalk.send((smalltalk.Object || Object), "_new", [])) == nil || $receiver == undefined) ? (function(){return true;})() : $receiver, "__eq", [true])]);
1185
- smalltalk.send(self, "_assert_", [smalltalk.send((($receiver = smalltalk.send((smalltalk.Object || Object), "_new", [])) != nil && $receiver != undefined) ? (function(){return true;})() : nil, "__eq", [true])]);
1186
- smalltalk.send(self, "_assert_", [smalltalk.send((($receiver = smalltalk.send((smalltalk.Object || Object), "_new", [])) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return true;})(), "__eq", [true])]);
1187
- smalltalk.send(self, "_assert_", [smalltalk.send((($receiver = smalltalk.send((smalltalk.Object || Object), "_new", [])) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return true;})(), "__eq", [true])]);
1188
- return self;},
1189
- args: [],
1190
- source: "testIfNil\x0a\x09self deny: Object new isNil.\x0a\x09self deny: (Object new ifNil: [true]) = true.\x0a\x09self assert: (Object new ifNotNil: [true]) = true.\x0a\x0a\x09self assert: (Object new ifNil: [false] ifNotNil: [true]) = true.\x0a\x09self assert: (Object new ifNotNil: [true] ifNil: [false]) = true",
1191
- messageSends: ["deny:", "isNil", "new", "=", "ifNil:", "assert:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil:"],
1192
- referencedClasses: ["Object"]
1346
+ var $1,$2;
1347
+ var array;
1348
+ array=smalltalk.send((smalltalk.Array || Array),"_new",[]);
1349
+ smalltalk.send(self,"_assert_equals_",["a Array ()",smalltalk.send(array,"_printString",[])]);
1350
+ smalltalk.send(array,"_add_",[(1)]);
1351
+ $1=smalltalk.send(array,"_add_",[(3)]);
1352
+ smalltalk.send(self,"_assert_equals_",["a Array (1 3)",smalltalk.send(array,"_printString",[])]);
1353
+ smalltalk.send(array,"_add_",["foo"]);
1354
+ smalltalk.send(self,"_assert_equals_",["a Array (1 3 'foo')",smalltalk.send(array,"_printString",[])]);
1355
+ smalltalk.send(array,"_remove_",[(1)]);
1356
+ $2=smalltalk.send(array,"_remove_",[(3)]);
1357
+ smalltalk.send(self,"_assert_equals_",["a Array ('foo')",smalltalk.send(array,"_printString",[])]);
1358
+ smalltalk.send(array,"_addLast_",[(3)]);
1359
+ smalltalk.send(self,"_assert_equals_",["a Array ('foo' 3)",smalltalk.send(array,"_printString",[])]);
1360
+ smalltalk.send(array,"_addLast_",[(3)]);
1361
+ smalltalk.send(self,"_assert_equals_",["a Array ('foo' 3 3)",smalltalk.send(array,"_printString",[])]);
1362
+ return self},
1363
+ args: [],
1364
+ source: "testPrintString\x0a\x09| array |\x0a\x09array := Array new.\x0a\x09self assert: 'a Array ()' equals: ( array printString ).\x0a\x09array add: 1; add: 3.\x0a\x09self assert: 'a Array (1 3)' equals: ( array printString ).\x0a\x09array add: 'foo'.\x0a\x09self assert: 'a Array (1 3 ''foo'')' equals: ( array printString ).\x0a\x09array remove: 1; remove: 3.\x0a\x09self assert: 'a Array (''foo'')' equals: ( array printString ).\x0a\x09array addLast: 3.\x0a\x09self assert: 'a Array (''foo'' 3)' equals: ( array printString ).\x0a\x09array addLast: 3.\x0a\x09self assert: 'a Array (''foo'' 3 3)' equals: ( array printString ).",
1365
+ messageSends: ["new", "assert:equals:", "printString", "add:", "remove:", "addLast:"],
1366
+ referencedClasses: ["Array"]
1193
1367
  }),
1194
- smalltalk.ObjectTest);
1368
+ smalltalk.ArrayTest);
1369
+
1195
1370
 
1196
1371
  smalltalk.addMethod(
1197
- "_testInstVars",
1372
+ "_collectionClass",
1198
1373
  smalltalk.method({
1199
- selector: "testInstVars",
1200
- category: 'tests',
1374
+ selector: "collectionClass",
1375
+ category: 'accessing',
1201
1376
  fn: function (){
1202
1377
  var self=this;
1203
- var o=nil;
1204
- (o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []));
1205
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", [smalltalk.symbolFor("foo")]), nil]);
1206
- smalltalk.send(o, "_instVarAt_put_", [smalltalk.symbolFor("foo"), (1)]);
1207
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", [smalltalk.symbolFor("foo")]), (1)]);
1208
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", ["foo"]), (1)]);
1209
- return self;},
1378
+ return (smalltalk.Array || Array);
1379
+ },
1210
1380
  args: [],
1211
- source: "testInstVars\x0a\x09| o |\x0a\x09o := ObjectMock new.\x0a\x09self assert: (o instVarAt: #foo) equals: nil.\x0a\x0a\x09o instVarAt: #foo put: 1.\x0a\x09self assert: (o instVarAt: #foo) equals: 1.\x0a\x09self assert: (o instVarAt: 'foo') equals: 1",
1212
- messageSends: ["new", "assert:equals:", "instVarAt:", "instVarAt:put:"],
1213
- referencedClasses: ["ObjectMock"]
1381
+ source: "collectionClass\x0a\x09^ Array",
1382
+ messageSends: [],
1383
+ referencedClasses: ["Array"]
1214
1384
  }),
1215
- smalltalk.ObjectTest);
1385
+ smalltalk.ArrayTest.klass);
1386
+
1216
1387
 
1388
+ smalltalk.addClass('StringTest', smalltalk.SequenceableCollectionTest, [], 'Kernel-Tests');
1217
1389
  smalltalk.addMethod(
1218
- "_testNilUndefined",
1390
+ "_collection",
1219
1391
  smalltalk.method({
1220
- selector: "testNilUndefined",
1221
- category: 'tests',
1392
+ selector: "collection",
1393
+ category: 'accessing',
1222
1394
  fn: function (){
1223
1395
  var self=this;
1224
- smalltalk.send(self, "_assert_", [smalltalk.send(nil, "__eq", [(typeof undefined == 'undefined' ? nil : undefined)])]);
1225
- return self;},
1396
+ return "hello";
1397
+ },
1226
1398
  args: [],
1227
- source: "testNilUndefined\x0a\x09\x22nil in Smalltalk is the undefined object in JS\x22\x0a\x0a\x09self assert: nil = undefined",
1228
- messageSends: ["assert:", "="],
1399
+ source: "collection\x0a\x09^'hello'",
1400
+ messageSends: [],
1229
1401
  referencedClasses: []
1230
1402
  }),
1231
- smalltalk.ObjectTest);
1403
+ smalltalk.StringTest);
1232
1404
 
1233
1405
  smalltalk.addMethod(
1234
- "_testYourself",
1406
+ "_collectionWithDuplicates",
1235
1407
  smalltalk.method({
1236
- selector: "testYourself",
1237
- category: 'tests',
1408
+ selector: "collectionWithDuplicates",
1409
+ category: 'accessing',
1238
1410
  fn: function (){
1239
1411
  var self=this;
1240
- var o=nil;
1241
- (o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []));
1242
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq_eq", [o])]);
1243
- return self;},
1412
+ return "abbaerte";
1413
+ },
1244
1414
  args: [],
1245
- source: "testYourself\x0a\x09| o |\x0a\x09o := ObjectMock new.\x0a\x09self assert: o yourself == o",
1246
- messageSends: ["new", "assert:", "==", "yourself"],
1247
- referencedClasses: ["ObjectMock"]
1415
+ source: "collectionWithDuplicates\x0a\x09^ 'abbaerte'",
1416
+ messageSends: [],
1417
+ referencedClasses: []
1248
1418
  }),
1249
- smalltalk.ObjectTest);
1419
+ smalltalk.StringTest);
1250
1420
 
1251
1421
  smalltalk.addMethod(
1252
- "_testidentityHash",
1422
+ "_testAddRemove",
1253
1423
  smalltalk.method({
1254
- selector: "testidentityHash",
1424
+ selector: "testAddRemove",
1255
1425
  category: 'tests',
1256
1426
  fn: function (){
1257
1427
  var self=this;
1258
- var o1=nil;
1259
- var o2=nil;
1260
- (o1=smalltalk.send((smalltalk.Object || Object), "_new", []));
1261
- (o2=smalltalk.send((smalltalk.Object || Object), "_new", []));
1262
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o1, "_identityHash", [])])]);
1263
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o2, "_identityHash", [])])]);
1264
- return self;},
1428
+ smalltalk.send(self,"_should_raise_",[(function(){
1429
+ return smalltalk.send("hello","_add_",["a"]);
1430
+ }),(smalltalk.Error || Error)]);
1431
+ smalltalk.send(self,"_should_raise_",[(function(){
1432
+ return smalltalk.send("hello","_remove_",["h"]);
1433
+ }),(smalltalk.Error || Error)]);
1434
+ return self},
1265
1435
  args: [],
1266
- source: "testidentityHash\x0a\x09| o1 o2 |\x0a\x09\x0a\x09o1 := Object new.\x0a\x09o2 := Object new.\x0a\x0a\x09self assert: o1 identityHash == o1 identityHash.\x0a\x09self deny: o1 identityHash == o2 identityHash",
1267
- messageSends: ["new", "assert:", "==", "identityHash", "deny:"],
1268
- referencedClasses: ["Object"]
1436
+ source: "testAddRemove\x0a\x09self should: ['hello' add: 'a'] raise: Error.\x0a\x09self should: ['hello' remove: 'h'] raise: Error",
1437
+ messageSends: ["should:raise:", "add:", "remove:"],
1438
+ referencedClasses: ["Error"]
1269
1439
  }),
1270
- smalltalk.ObjectTest);
1271
-
1272
-
1440
+ smalltalk.StringTest);
1273
1441
 
1274
- smalltalk.addClass('PackageTest', smalltalk.TestCase, ['zorkPackage', 'grulPackage', 'backUpCommitPathJs', 'backUpCommitPathSt'], 'Kernel-Tests');
1275
1442
  smalltalk.addMethod(
1276
- "_setUp",
1443
+ "_testAsArray",
1277
1444
  smalltalk.method({
1278
- selector: "setUp",
1279
- category: 'running',
1445
+ selector: "testAsArray",
1446
+ category: 'tests',
1280
1447
  fn: function (){
1281
1448
  var self=this;
1282
- (self['@backUpCommitPathJs']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathJs", []));
1283
- (self['@backUpCommitPathSt']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathSt", []));
1284
- smalltalk.send((smalltalk.Package || Package), "_resetCommitPaths", []);
1285
- (self['@zorkPackage']=smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_new", []), "_name_", ["Zork"]));
1286
- (self['@grulPackage']=(function($rec){smalltalk.send($rec, "_name_", ["Grul"]);smalltalk.send($rec, "_commitPathJs_", ["server/grul/js"]);smalltalk.send($rec, "_commitPathSt_", ["grul/st"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Package || Package), "_new", [])));
1287
- return self;},
1449
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("hello","_asArray",[]),"__eq",[["h", "e", "l", "l", "o"]])]);
1450
+ return self},
1288
1451
  args: [],
1289
- source: "setUp\x0a\x09backUpCommitPathJs := Package defaultCommitPathJs.\x0a\x09backUpCommitPathSt := Package defaultCommitPathSt.\x0a\x0a\x09Package resetCommitPaths.\x0a\x0a\x09zorkPackage := Package new name: 'Zork'.\x0a\x09grulPackage := Package new \x0a\x09\x09\x09\x09\x09name: 'Grul';\x0a\x09\x09\x09\x09\x09commitPathJs: 'server/grul/js';\x0a\x09\x09\x09\x09\x09commitPathSt: 'grul/st';\x0a\x09\x09\x09\x09\x09yourself",
1290
- messageSends: ["defaultCommitPathJs", "defaultCommitPathSt", "resetCommitPaths", "name:", "new", "commitPathJs:", "commitPathSt:", "yourself"],
1291
- referencedClasses: ["Package"]
1452
+ source: "testAsArray\x0a\x09self assert: 'hello' asArray = #('h' 'e' 'l' 'l' 'o').",
1453
+ messageSends: ["assert:", "=", "asArray"],
1454
+ referencedClasses: []
1292
1455
  }),
1293
- smalltalk.PackageTest);
1456
+ smalltalk.StringTest);
1294
1457
 
1295
1458
  smalltalk.addMethod(
1296
- "_tearDown",
1459
+ "_testAt",
1297
1460
  smalltalk.method({
1298
- selector: "tearDown",
1299
- category: 'running',
1461
+ selector: "testAt",
1462
+ category: 'tests',
1300
1463
  fn: function (){
1301
1464
  var self=this;
1302
- (function($rec){smalltalk.send($rec, "_defaultCommitPathJs_", [self['@backUpCommitPathJs']]);return smalltalk.send($rec, "_defaultCommitPathSt_", [self['@backUpCommitPathSt']]);})((smalltalk.Package || Package));
1303
- return self;},
1465
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("hello","_at_",[(1)]),"__eq",["h"])]);
1466
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("hello","_at_",[(5)]),"__eq",["o"])]);
1467
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("hello","_at_ifAbsent_",[(6),(function(){
1468
+ return nil;
1469
+ })]),"__eq",[nil])]);
1470
+ return self},
1304
1471
  args: [],
1305
- source: "tearDown\x0a\x09 Package \x0a\x09\x09defaultCommitPathJs: backUpCommitPathJs;\x0a\x09\x09defaultCommitPathSt: backUpCommitPathSt",
1306
- messageSends: ["defaultCommitPathJs:", "defaultCommitPathSt:"],
1307
- referencedClasses: ["Package"]
1472
+ source: "testAt\x0a\x09self assert: ('hello' at: 1) = 'h'.\x0a\x09self assert: ('hello' at: 5) = 'o'.\x0a\x09self assert: ('hello' at: 6 ifAbsent: [nil]) = nil",
1473
+ messageSends: ["assert:", "=", "at:", "at:ifAbsent:"],
1474
+ referencedClasses: []
1308
1475
  }),
1309
- smalltalk.PackageTest);
1476
+ smalltalk.StringTest);
1310
1477
 
1311
1478
  smalltalk.addMethod(
1312
- "_testGrulCommitPathJsShouldBeServerGrulJs",
1479
+ "_testAtPut",
1313
1480
  smalltalk.method({
1314
- selector: "testGrulCommitPathJsShouldBeServerGrulJs",
1481
+ selector: "testAtPut",
1315
1482
  category: 'tests',
1316
1483
  fn: function (){
1317
1484
  var self=this;
1318
- smalltalk.send(self, "_assert_equals_", ["server/grul/js", smalltalk.send(self['@grulPackage'], "_commitPathJs", [])]);
1319
- return self;},
1485
+ smalltalk.send(self,"_should_raise_",[(function(){
1486
+ return smalltalk.send("hello","_at_put_",[(1),"a"]);
1487
+ }),(smalltalk.Error || Error)]);
1488
+ return self},
1320
1489
  args: [],
1321
- source: "testGrulCommitPathJsShouldBeServerGrulJs\x0a\x09self assert: 'server/grul/js' equals: grulPackage commitPathJs",
1322
- messageSends: ["assert:equals:", "commitPathJs"],
1323
- referencedClasses: []
1490
+ source: "testAtPut\x0a\x09\x22String instances are read-only\x22\x0a\x09self should: ['hello' at: 1 put: 'a'] raise: Error",
1491
+ messageSends: ["should:raise:", "at:put:"],
1492
+ referencedClasses: ["Error"]
1324
1493
  }),
1325
- smalltalk.PackageTest);
1494
+ smalltalk.StringTest);
1326
1495
 
1327
1496
  smalltalk.addMethod(
1328
- "_testGrulCommitPathStShouldBeGrulSt",
1497
+ "_testCollect",
1329
1498
  smalltalk.method({
1330
- selector: "testGrulCommitPathStShouldBeGrulSt",
1499
+ selector: "testCollect",
1331
1500
  category: 'tests',
1332
1501
  fn: function (){
1333
1502
  var self=this;
1334
- smalltalk.send(self, "_assert_equals_", ["grul/st", smalltalk.send(self['@grulPackage'], "_commitPathSt", [])]);
1335
- return self;},
1503
+ var newCollection;
1504
+ newCollection="hheelllloo";
1505
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_collect_",[(function(each){
1506
+ return smalltalk.send(each,"__comma",[each]);
1507
+ })]),newCollection]);
1508
+ return self},
1336
1509
  args: [],
1337
- source: "testGrulCommitPathStShouldBeGrulSt\x0a\x09self assert: 'grul/st' equals: grulPackage commitPathSt",
1338
- messageSends: ["assert:equals:", "commitPathSt"],
1510
+ source: "testCollect\x0a\x09| newCollection |\x0a\x09newCollection := 'hheelllloo'.\x0a\x09self \x0a\x09\x09assertSameContents: (self collection collect: [ :each |\x0a\x09\x09\x09each, each ])\x0a\x09\x09as: newCollection",
1511
+ messageSends: ["assertSameContents:as:", "collect:", ",", "collection"],
1339
1512
  referencedClasses: []
1340
1513
  }),
1341
- smalltalk.PackageTest);
1514
+ smalltalk.StringTest);
1342
1515
 
1343
1516
  smalltalk.addMethod(
1344
- "_testZorkCommitPathJsShouldBeJs",
1517
+ "_testCopyWithoutAll",
1345
1518
  smalltalk.method({
1346
- selector: "testZorkCommitPathJsShouldBeJs",
1519
+ selector: "testCopyWithoutAll",
1347
1520
  category: 'tests',
1348
1521
  fn: function (){
1349
1522
  var self=this;
1350
- smalltalk.send(self, "_assert_equals_", ["js", smalltalk.send(self['@zorkPackage'], "_commitPathJs", [])]);
1351
- return self;},
1523
+ smalltalk.send(self,"_assert_equals_",["hello world",smalltalk.send("*hello* *world*","_copyWithoutAll_",["*"])]);
1524
+ return self},
1352
1525
  args: [],
1353
- source: "testZorkCommitPathJsShouldBeJs\x0a\x09self assert: 'js' equals: zorkPackage commitPathJs",
1354
- messageSends: ["assert:equals:", "commitPathJs"],
1526
+ source: "testCopyWithoutAll\x0a\x09self \x0a\x09\x09assert: 'hello world' \x0a\x09\x09equals: ('*hello* *world*' copyWithoutAll: '*')",
1527
+ messageSends: ["assert:equals:", "copyWithoutAll:"],
1355
1528
  referencedClasses: []
1356
1529
  }),
1357
- smalltalk.PackageTest);
1530
+ smalltalk.StringTest);
1358
1531
 
1359
1532
  smalltalk.addMethod(
1360
- "_testZorkCommitPathStShouldBeSt",
1533
+ "_testDetect",
1361
1534
  smalltalk.method({
1362
- selector: "testZorkCommitPathStShouldBeSt",
1535
+ selector: "testDetect",
1363
1536
  category: 'tests',
1364
1537
  fn: function (){
1365
1538
  var self=this;
1366
- smalltalk.send(self, "_assert_equals_", ["st", smalltalk.send(self['@zorkPackage'], "_commitPathSt", [])]);
1367
- return self;},
1539
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_detect_",[(function(each){
1540
+ return smalltalk.send(each,"__eq",["h"]);
1541
+ })]),"__eq",["h"])]);
1542
+ smalltalk.send(self,"_should_raise_",[(function(){
1543
+ return smalltalk.send(smalltalk.send(self,"_collection",[]),"_detect_",[(function(each){
1544
+ return smalltalk.send(each,"__eq",[(6)]);
1545
+ })]);
1546
+ }),(smalltalk.Error || Error)]);
1547
+ return self},
1368
1548
  args: [],
1369
- source: "testZorkCommitPathStShouldBeSt\x0a\x09self assert: 'st' equals: zorkPackage commitPathSt",
1370
- messageSends: ["assert:equals:", "commitPathSt"],
1371
- referencedClasses: []
1549
+ source: "testDetect\x0a\x09self assert: (self collection detect: [ :each | each = 'h' ]) = 'h'.\x0a\x09self \x0a\x09\x09should: [ self collection detect: [ :each | each = 6 ] ]\x0a\x09\x09raise: Error",
1550
+ messageSends: ["assert:", "=", "detect:", "collection", "should:raise:"],
1551
+ referencedClasses: ["Error"]
1372
1552
  }),
1373
- smalltalk.PackageTest);
1374
-
1553
+ smalltalk.StringTest);
1375
1554
 
1555
+ smalltalk.addMethod(
1556
+ "_testEquality",
1557
+ smalltalk.method({
1558
+ selector: "testEquality",
1559
+ category: 'tests',
1560
+ fn: function (){
1561
+ var self=this;
1562
+ smalltalk.send(self,"_assert_",[smalltalk.send("hello","__eq",["hello"])]);
1563
+ smalltalk.send(self,"_deny_",[smalltalk.send("hello","__eq",["world"])]);
1564
+ smalltalk.send(self,"_assert_",[smalltalk.send("hello","__eq",[smalltalk.send("hello","_yourself",[])])]);
1565
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("hello","_yourself",[]),"__eq",["hello"])]);
1566
+ smalltalk.send(self,"_deny_",[smalltalk.send("","__eq",[(0)])]);
1567
+ return self},
1568
+ args: [],
1569
+ source: "testEquality\x0a\x09self assert: 'hello' = 'hello'.\x0a\x09self deny: 'hello' = 'world'.\x0a\x0a\x09self assert: 'hello' = 'hello' yourself.\x0a\x09self assert: 'hello' yourself = 'hello'.\x0a\x0a\x09\x22test JS falsy value\x22\x0a\x09self deny: '' = 0",
1570
+ messageSends: ["assert:", "=", "deny:", "yourself"],
1571
+ referencedClasses: []
1572
+ }),
1573
+ smalltalk.StringTest);
1376
1574
 
1377
- smalltalk.addClass('PackageWithDefaultCommitPathChangedTest', smalltalk.PackageTest, [], 'Kernel-Tests');
1378
1575
  smalltalk.addMethod(
1379
- "_setUp",
1576
+ "_testIdentity",
1380
1577
  smalltalk.method({
1381
- selector: "setUp",
1382
- category: 'running',
1578
+ selector: "testIdentity",
1579
+ category: 'tests',
1383
1580
  fn: function (){
1384
1581
  var self=this;
1385
- smalltalk.send(self, "_setUp", [], smalltalk.PackageWithDefaultCommitPathChangedTest.superclass || nil);
1386
- (function($rec){smalltalk.send($rec, "_defaultCommitPathJs_", ["javascripts/"]);return smalltalk.send($rec, "_defaultCommitPathSt_", ["smalltalk/"]);})((smalltalk.Package || Package));
1387
- return self;},
1582
+ smalltalk.send(self,"_assert_",[smalltalk.send("hello","__eq_eq",["hello"])]);
1583
+ smalltalk.send(self,"_deny_",[smalltalk.send("hello","__eq_eq",["world"])]);
1584
+ smalltalk.send(self,"_assert_",[smalltalk.send("hello","__eq_eq",[smalltalk.send("hello","_yourself",[])])]);
1585
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("hello","_yourself",[]),"__eq_eq",["hello"])]);
1586
+ smalltalk.send(self,"_deny_",[smalltalk.send("","__eq_eq",[(0)])]);
1587
+ return self},
1388
1588
  args: [],
1389
- source: "setUp\x0a\x09super setUp.\x0a\x0a\x09Package\x0a\x09\x09defaultCommitPathJs: 'javascripts/';\x0a\x09\x09defaultCommitPathSt: 'smalltalk/'.",
1390
- messageSends: ["setUp", "defaultCommitPathJs:", "defaultCommitPathSt:"],
1391
- referencedClasses: ["Package"]
1589
+ source: "testIdentity\x0a\x09self assert: 'hello' == 'hello'.\x0a\x09self deny: 'hello' == 'world'.\x0a\x0a\x09self assert: 'hello' == 'hello' yourself.\x0a\x09self assert: 'hello' yourself == 'hello'.\x0a\x0a\x09\x22test JS falsy value\x22\x0a\x09self deny: '' == 0",
1590
+ messageSends: ["assert:", "==", "deny:", "yourself"],
1591
+ referencedClasses: []
1392
1592
  }),
1393
- smalltalk.PackageWithDefaultCommitPathChangedTest);
1593
+ smalltalk.StringTest);
1394
1594
 
1395
1595
  smalltalk.addMethod(
1396
- "_testGrulCommitPathJsShouldBeServerGrulJs",
1596
+ "_testIncludesSubString",
1397
1597
  smalltalk.method({
1398
- selector: "testGrulCommitPathJsShouldBeServerGrulJs",
1598
+ selector: "testIncludesSubString",
1399
1599
  category: 'tests',
1400
1600
  fn: function (){
1401
1601
  var self=this;
1402
- smalltalk.send(self, "_assert_equals_", ["server/grul/js", smalltalk.send(self['@grulPackage'], "_commitPathJs", [])]);
1403
- return self;},
1602
+ smalltalk.send(self,"_assert_",[smalltalk.send("amber","_includesSubString_",["ber"])]);
1603
+ smalltalk.send(self,"_deny_",[smalltalk.send("amber","_includesSubString_",["zork"])]);
1604
+ return self},
1404
1605
  args: [],
1405
- source: "testGrulCommitPathJsShouldBeServerGrulJs\x0a\x09self assert: 'server/grul/js' equals: grulPackage commitPathJs",
1406
- messageSends: ["assert:equals:", "commitPathJs"],
1606
+ source: "testIncludesSubString\x0a\x09self assert: ('amber' includesSubString: 'ber').\x0a\x09self deny: ('amber' includesSubString: 'zork').",
1607
+ messageSends: ["assert:", "includesSubString:", "deny:"],
1407
1608
  referencedClasses: []
1408
1609
  }),
1409
- smalltalk.PackageWithDefaultCommitPathChangedTest);
1610
+ smalltalk.StringTest);
1410
1611
 
1411
1612
  smalltalk.addMethod(
1412
- "_testGrulCommitPathStShouldBeGrulSt",
1613
+ "_testJoin",
1413
1614
  smalltalk.method({
1414
- selector: "testGrulCommitPathStShouldBeGrulSt",
1615
+ selector: "testJoin",
1415
1616
  category: 'tests',
1416
1617
  fn: function (){
1417
1618
  var self=this;
1418
- smalltalk.send(self, "_assert_equals_", ["grul/st", smalltalk.send(self['@grulPackage'], "_commitPathSt", [])]);
1419
- return self;},
1619
+ smalltalk.send(self,"_assert_equals_",["hello,world",smalltalk.send(",","_join_",[["hello", "world"]])]);
1620
+ return self},
1420
1621
  args: [],
1421
- source: "testGrulCommitPathStShouldBeGrulSt\x0a\x09self assert: 'grul/st' equals: grulPackage commitPathSt",
1422
- messageSends: ["assert:equals:", "commitPathSt"],
1622
+ source: "testJoin\x0a\x09self assert: 'hello,world' equals: (',' join: #('hello' 'world'))",
1623
+ messageSends: ["assert:equals:", "join:"],
1423
1624
  referencedClasses: []
1424
1625
  }),
1425
- smalltalk.PackageWithDefaultCommitPathChangedTest);
1626
+ smalltalk.StringTest);
1426
1627
 
1427
1628
  smalltalk.addMethod(
1428
- "_testZorkCommitPathJsShouldBeJavascript",
1629
+ "_testSelect",
1429
1630
  smalltalk.method({
1430
- selector: "testZorkCommitPathJsShouldBeJavascript",
1631
+ selector: "testSelect",
1431
1632
  category: 'tests',
1432
1633
  fn: function (){
1433
1634
  var self=this;
1434
- smalltalk.send(self, "_assert_equals_", ["javascripts/", smalltalk.send(self['@zorkPackage'], "_commitPathJs", [])]);
1435
- return self;},
1635
+ var newCollection;
1636
+ newCollection="o";
1637
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_select_",[(function(each){
1638
+ return smalltalk.send(each,"__eq",["o"]);
1639
+ })]),newCollection]);
1640
+ return self},
1436
1641
  args: [],
1437
- source: "testZorkCommitPathJsShouldBeJavascript\x0a\x09self assert: 'javascripts/' equals: zorkPackage commitPathJs",
1438
- messageSends: ["assert:equals:", "commitPathJs"],
1642
+ source: "testSelect\x0a\x09| newCollection |\x0a\x09newCollection := 'o'.\x0a\x09self \x0a\x09\x09assertSameContents: (self collection select: [ :each |\x0a\x09\x09\x09each = 'o' ])\x0a\x09\x09as: newCollection",
1643
+ messageSends: ["assertSameContents:as:", "select:", "=", "collection"],
1439
1644
  referencedClasses: []
1440
1645
  }),
1441
- smalltalk.PackageWithDefaultCommitPathChangedTest);
1646
+ smalltalk.StringTest);
1442
1647
 
1443
1648
  smalltalk.addMethod(
1444
- "_testZorkCommitPathStShouldBeSmalltalk",
1649
+ "_testSize",
1445
1650
  smalltalk.method({
1446
- selector: "testZorkCommitPathStShouldBeSmalltalk",
1651
+ selector: "testSize",
1447
1652
  category: 'tests',
1448
1653
  fn: function (){
1449
1654
  var self=this;
1450
- smalltalk.send(self, "_assert_equals_", ["smalltalk/", smalltalk.send(self['@zorkPackage'], "_commitPathSt", [])]);
1451
- return self;},
1655
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send("smalltalk","_size",[]),(9)]);
1656
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send("","_size",[]),(0)]);
1657
+ return self},
1452
1658
  args: [],
1453
- source: "testZorkCommitPathStShouldBeSmalltalk\x0a\x09self assert: 'smalltalk/' equals: zorkPackage commitPathSt",
1454
- messageSends: ["assert:equals:", "commitPathSt"],
1659
+ source: "testSize\x0a\x09self assert: 'smalltalk' size equals: 9.\x0a\x09self assert: '' size equals: 0",
1660
+ messageSends: ["assert:equals:", "size"],
1455
1661
  referencedClasses: []
1456
1662
  }),
1457
- smalltalk.PackageWithDefaultCommitPathChangedTest);
1663
+ smalltalk.StringTest);
1664
+
1665
+ smalltalk.addMethod(
1666
+ "_testStreamContents",
1667
+ smalltalk.method({
1668
+ selector: "testStreamContents",
1669
+ category: 'tests',
1670
+ fn: function (){
1671
+ var self=this;
1672
+ var $1;
1673
+ smalltalk.send(self,"_assert_equals_",["hello world",smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(aStream){
1674
+ smalltalk.send(aStream,"_nextPutAll_",["hello"]);
1675
+ smalltalk.send(aStream,"_space",[]);
1676
+ $1=smalltalk.send(aStream,"_nextPutAll_",["world"]);
1677
+ return $1;
1678
+ })])]);
1679
+ return self},
1680
+ args: [],
1681
+ source: "testStreamContents\x0a\x09self \x0a\x09\x09assert: 'hello world' \x0a\x09\x09equals: (String streamContents: [ :aStream | \x0a\x09\x09\x09aStream \x0a\x09\x09\x09\x09nextPutAll: 'hello'; space; \x0a\x09\x09\x09\x09nextPutAll: 'world' ])",
1682
+ messageSends: ["assert:equals:", "streamContents:", "nextPutAll:", "space"],
1683
+ referencedClasses: ["String"]
1684
+ }),
1685
+ smalltalk.StringTest);
1458
1686
 
1459
1687
 
1460
1688
  smalltalk.addMethod(
1461
- "_shouldInheritSelectors",
1689
+ "_collectionClass",
1462
1690
  smalltalk.method({
1463
- selector: "shouldInheritSelectors",
1691
+ selector: "collectionClass",
1464
1692
  category: 'accessing',
1465
1693
  fn: function (){
1466
1694
  var self=this;
1467
- return false;
1468
- return self;},
1695
+ return (smalltalk.String || String);
1696
+ },
1469
1697
  args: [],
1470
- source: "shouldInheritSelectors\x0a\x09^ false",
1698
+ source: "collectionClass\x0a\x09^ String",
1471
1699
  messageSends: [],
1472
- referencedClasses: []
1700
+ referencedClasses: ["String"]
1473
1701
  }),
1474
- smalltalk.PackageWithDefaultCommitPathChangedTest.klass);
1702
+ smalltalk.StringTest.klass);
1475
1703
 
1476
1704
 
1477
- smalltalk.addClass('PointTest', smalltalk.TestCase, [], 'Kernel-Tests');
1705
+ smalltalk.addClass('SymbolTest', smalltalk.SequenceableCollectionTest, [], 'Kernel-Tests');
1478
1706
  smalltalk.addMethod(
1479
- "_testAccessing",
1707
+ "_collection",
1480
1708
  smalltalk.method({
1481
- selector: "testAccessing",
1482
- category: 'tests',
1709
+ selector: "collection",
1710
+ category: 'accessing',
1483
1711
  fn: function (){
1484
1712
  var self=this;
1485
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send((smalltalk.Point || Point), "_x_y_", [(3), (4)]), "_x", []), (3)]);
1486
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send((smalltalk.Point || Point), "_x_y_", [(3), (4)]), "_y", []), (4)]);
1487
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Point || Point), "_new", []), "_x_", [(3)]), "_x", []), (3)]);
1488
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Point || Point), "_new", []), "_y_", [(4)]), "_y", []), (4)]);
1489
- return self;},
1713
+ return smalltalk.symbolFor("hello");
1714
+ },
1490
1715
  args: [],
1491
- source: "testAccessing\x0a\x09self assert: (Point x: 3 y: 4) x equals: 3.\x0a\x09self assert: (Point x: 3 y: 4) y equals: 4.\x0a\x09self assert: (Point new x: 3) x equals: 3.\x0a\x09self assert: (Point new y: 4) y equals: 4",
1492
- messageSends: ["assert:equals:", "x", "x:y:", "y", "x:", "new", "y:"],
1493
- referencedClasses: ["Point"]
1716
+ source: "collection\x0a\x09^ #hello",
1717
+ messageSends: [],
1718
+ referencedClasses: []
1494
1719
  }),
1495
- smalltalk.PointTest);
1720
+ smalltalk.SymbolTest);
1496
1721
 
1497
1722
  smalltalk.addMethod(
1498
- "_testArithmetic",
1723
+ "_collectionWithDuplicates",
1499
1724
  smalltalk.method({
1500
- selector: "testArithmetic",
1501
- category: 'tests',
1725
+ selector: "collectionWithDuplicates",
1726
+ category: 'accessing',
1502
1727
  fn: function (){
1503
1728
  var self=this;
1504
- smalltalk.send(self, "_assert_equals_", [((($receiver = smalltalk.send((3), "__at", [(4)])).klass === smalltalk.Number) ? $receiver *smalltalk.send((3), "__at", [(4)]) : smalltalk.send($receiver, "__star", [smalltalk.send((3), "__at", [(4)])])), smalltalk.send((smalltalk.Point || Point), "_x_y_", [(9), (16)])]);
1505
- smalltalk.send(self, "_assert_equals_", [((($receiver = smalltalk.send((3), "__at", [(4)])).klass === smalltalk.Number) ? $receiver +smalltalk.send((3), "__at", [(4)]) : smalltalk.send($receiver, "__plus", [smalltalk.send((3), "__at", [(4)])])), smalltalk.send((smalltalk.Point || Point), "_x_y_", [(6), (8)])]);
1506
- smalltalk.send(self, "_assert_equals_", [((($receiver = smalltalk.send((3), "__at", [(4)])).klass === smalltalk.Number) ? $receiver -smalltalk.send((3), "__at", [(4)]) : smalltalk.send($receiver, "__minus", [smalltalk.send((3), "__at", [(4)])])), smalltalk.send((smalltalk.Point || Point), "_x_y_", [(0), (0)])]);
1507
- smalltalk.send(self, "_assert_equals_", [((($receiver = smalltalk.send((6), "__at", [(8)])).klass === smalltalk.Number) ? $receiver /smalltalk.send((3), "__at", [(4)]) : smalltalk.send($receiver, "__slash", [smalltalk.send((3), "__at", [(4)])])), smalltalk.send((smalltalk.Point || Point), "_x_y_", [(2), (2)])]);
1508
- return self;},
1729
+ return smalltalk.symbolFor("phhaaarorra");
1730
+ },
1509
1731
  args: [],
1510
- source: "testArithmetic\x0a\x09self assert: 3@4 * (3@4 ) equals: (Point x: 9 y: 16).\x0a\x09self assert: 3@4 + (3@4 ) equals: (Point x: 6 y: 8).\x0a\x09self assert: 3@4 - (3@4 ) equals: (Point x: 0 y: 0).\x0a\x09self assert: 6@8 / (3@4 ) equals: (Point x: 2 y: 2)",
1511
- messageSends: ["assert:equals:", "*", "@", "x:y:", "+", "-", "/"],
1512
- referencedClasses: ["Point"]
1732
+ source: "collectionWithDuplicates\x0a\x09^ #phhaaarorra",
1733
+ messageSends: [],
1734
+ referencedClasses: []
1513
1735
  }),
1514
- smalltalk.PointTest);
1736
+ smalltalk.SymbolTest);
1515
1737
 
1516
1738
  smalltalk.addMethod(
1517
- "_testAt",
1739
+ "_testAsString",
1518
1740
  smalltalk.method({
1519
- selector: "testAt",
1741
+ selector: "testAsString",
1520
1742
  category: 'tests',
1521
1743
  fn: function (){
1522
1744
  var self=this;
1523
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((3), "__at", [(4)]), smalltalk.send((smalltalk.Point || Point), "_x_y_", [(3), (4)])]);
1524
- return self;},
1745
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.symbolFor("hello"),"_asString",[]),"hello"]);
1746
+ return self},
1525
1747
  args: [],
1526
- source: "testAt\x0a\x09self assert: 3@4 equals: (Point x: 3 y: 4)",
1527
- messageSends: ["assert:equals:", "@", "x:y:"],
1528
- referencedClasses: ["Point"]
1748
+ source: "testAsString\x0a\x09self assert: #hello asString equals: 'hello'",
1749
+ messageSends: ["assert:equals:", "asString"],
1750
+ referencedClasses: []
1529
1751
  }),
1530
- smalltalk.PointTest);
1752
+ smalltalk.SymbolTest);
1531
1753
 
1532
1754
  smalltalk.addMethod(
1533
- "_testEgality",
1755
+ "_testAsSymbol",
1534
1756
  smalltalk.method({
1535
- selector: "testEgality",
1757
+ selector: "testAsSymbol",
1536
1758
  category: 'tests',
1537
1759
  fn: function (){
1538
1760
  var self=this;
1539
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((3), "__at", [(4)]), "__eq", [smalltalk.send((3), "__at", [(4)])])]);
1540
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send((3), "__at", [(5)]), "__eq", [smalltalk.send((3), "__at", [(6)])])]);
1541
- return self;},
1761
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq_eq",[smalltalk.send(smalltalk.symbolFor("hello"),"_asSymbol",[])])]);
1762
+ return self},
1542
1763
  args: [],
1543
- source: "testEgality\x0a\x09self assert: 3@4 = (3@4).\x0a\x09self deny: 3@5 = (3@6)",
1544
- messageSends: ["assert:", "=", "@", "deny:"],
1764
+ source: "testAsSymbol\x0a\x09self assert: #hello == #hello asSymbol",
1765
+ messageSends: ["assert:", "==", "asSymbol"],
1545
1766
  referencedClasses: []
1546
1767
  }),
1547
- smalltalk.PointTest);
1768
+ smalltalk.SymbolTest);
1548
1769
 
1549
1770
  smalltalk.addMethod(
1550
- "_testTranslateBy",
1771
+ "_testAt",
1551
1772
  smalltalk.method({
1552
- selector: "testTranslateBy",
1773
+ selector: "testAt",
1553
1774
  category: 'tests',
1554
1775
  fn: function (){
1555
1776
  var self=this;
1556
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((3), "__at", [(4)]), smalltalk.send(smalltalk.send((3), "__at", [(3)]), "_translateBy_", [smalltalk.send((0), "__at", [(1)])])]);
1557
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((3), "__at", [(2)]), smalltalk.send(smalltalk.send((3), "__at", [(3)]), "_translateBy_", [smalltalk.send((0), "__at", [smalltalk.send((1), "_negated", [])])])]);
1558
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((5), "__at", [(6)]), smalltalk.send(smalltalk.send((3), "__at", [(3)]), "_translateBy_", [smalltalk.send((2), "__at", [(3)])])]);
1559
- smalltalk.send(self, "_assert_equals_", [smalltalk.send((0), "__at", [(3)]), smalltalk.send(smalltalk.send((3), "__at", [(3)]), "_translateBy_", [smalltalk.send(smalltalk.send((3), "_negated", []), "__at", [(0)])])]);
1560
- return self;},
1777
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_at_",[(1)]),"__eq",["h"])]);
1778
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_at_",[(5)]),"__eq",["o"])]);
1779
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_at_ifAbsent_",[(6),(function(){
1780
+ return nil;
1781
+ })]),"__eq",[nil])]);
1782
+ return self},
1561
1783
  args: [],
1562
- source: "testTranslateBy\x0a\x09self assert: 3@4 equals: (3@3 translateBy: 0@1).\x0a\x09self assert: 3@2 equals: (3@3 translateBy: 0@1 negated).\x0a\x09self assert: 5@6 equals: (3@3 translateBy: 2@3).\x0a\x09self assert: 0@3 equals: (3@3 translateBy: 3 negated @0).",
1563
- messageSends: ["assert:equals:", "@", "translateBy:", "negated"],
1784
+ source: "testAt\x0a\x09self assert: (#hello at: 1) = 'h'.\x0a\x09self assert: (#hello at: 5) = 'o'.\x0a\x09self assert: (#hello at: 6 ifAbsent: [nil]) = nil",
1785
+ messageSends: ["assert:", "=", "at:", "at:ifAbsent:"],
1564
1786
  referencedClasses: []
1565
1787
  }),
1566
- smalltalk.PointTest);
1567
-
1568
-
1788
+ smalltalk.SymbolTest);
1569
1789
 
1570
- smalltalk.addClass('RandomTest', smalltalk.TestCase, [], 'Kernel-Tests');
1571
1790
  smalltalk.addMethod(
1572
- "_textNext",
1791
+ "_testAtPut",
1573
1792
  smalltalk.method({
1574
- selector: "textNext",
1793
+ selector: "testAtPut",
1575
1794
  category: 'tests',
1576
1795
  fn: function (){
1577
1796
  var self=this;
1578
- smalltalk.send((10000), "_timesRepeat_", [(function(){var current=nil;
1579
- var next=nil;
1580
- (next=smalltalk.send(smalltalk.send((smalltalk.Random || Random), "_new", []), "_next", []));smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver >=(0) : smalltalk.send($receiver, "__gt_eq", [(0)]))]);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver <(1) : smalltalk.send($receiver, "__lt", [(1)]))]);smalltalk.send(self, "_deny_", [smalltalk.send(current, "__eq", [next])]);return smalltalk.send(next, "__eq", [current]);})]);
1581
- return self;},
1797
+ smalltalk.send(self,"_should_raise_",[(function(){
1798
+ return smalltalk.send("hello","_at_put_",[(1),"a"]);
1799
+ }),(smalltalk.Error || Error)]);
1800
+ return self},
1582
1801
  args: [],
1583
- source: "textNext\x0a\x0a\x0910000 timesRepeat: [\x0a\x09\x09\x09| current next | \x0a\x09\x09\x09next := Random new next.\x0a\x09\x09\x09self assert: (next >= 0).\x0a\x09\x09\x09self assert: (next < 1).\x0a\x09\x09\x09self deny: current = next.\x0a\x09\x09\x09next = current]",
1584
- messageSends: ["timesRepeat:", "next", "new", "assert:", ">=", "<", "deny:", "="],
1585
- referencedClasses: ["Random"]
1802
+ source: "testAtPut\x0a\x09\x22Symbol instances are read-only\x22\x0a\x09self should: ['hello' at: 1 put: 'a'] raise: Error",
1803
+ messageSends: ["should:raise:", "at:put:"],
1804
+ referencedClasses: ["Error"]
1586
1805
  }),
1587
- smalltalk.RandomTest);
1588
-
1589
-
1806
+ smalltalk.SymbolTest);
1590
1807
 
1591
- smalltalk.addClass('SetTest', smalltalk.TestCase, [], 'Kernel-Tests');
1592
1808
  smalltalk.addMethod(
1593
- "_testAddRemove",
1809
+ "_testCollect",
1594
1810
  smalltalk.method({
1595
- selector: "testAddRemove",
1811
+ selector: "testCollect",
1596
1812
  category: 'tests',
1597
1813
  fn: function (){
1598
1814
  var self=this;
1599
- var set=nil;
1600
- (set=smalltalk.send((smalltalk.Set || Set), "_new", []));
1601
- smalltalk.send(self, "_assert_", [smalltalk.send(set, "_isEmpty", [])]);
1602
- smalltalk.send(set, "_add_", [(3)]);
1603
- smalltalk.send(self, "_assert_", [smalltalk.send(set, "_includes_", [(3)])]);
1604
- smalltalk.send(set, "_add_", [(5)]);
1605
- smalltalk.send(self, "_assert_", [smalltalk.send(set, "_includes_", [(5)])]);
1606
- smalltalk.send(set, "_remove_", [(3)]);
1607
- smalltalk.send(self, "_deny_", [smalltalk.send(set, "_includes_", [(3)])]);
1608
- return self;},
1815
+ var newCollection;
1816
+ newCollection=smalltalk.symbolFor("hheelllloo");
1817
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_collect_",[(function(each){
1818
+ return smalltalk.send(each,"__comma",[each]);
1819
+ })]),newCollection]);
1820
+ return self},
1609
1821
  args: [],
1610
- source: "testAddRemove\x0a\x09| set |\x0a\x09set := Set new.\x0a\x09\x0a\x09self assert: set isEmpty.\x0a\x0a\x09set add: 3.\x0a\x09self assert: (set includes: 3).\x0a\x0a\x09set add: 5.\x0a\x09self assert: (set includes: 5).\x0a\x0a\x09set remove: 3.\x0a\x09self deny: (set includes: 3)",
1611
- messageSends: ["new", "assert:", "isEmpty", "add:", "includes:", "remove:", "deny:"],
1612
- referencedClasses: ["Set"]
1822
+ source: "testCollect\x0a\x09| newCollection |\x0a\x09newCollection := #hheelllloo.\x0a\x09self \x0a\x09\x09assertSameContents: (self collection collect: [ :each |\x0a\x09\x09\x09each, each ])\x0a\x09\x09as: newCollection",
1823
+ messageSends: ["assertSameContents:as:", "collect:", ",", "collection"],
1824
+ referencedClasses: []
1613
1825
  }),
1614
- smalltalk.SetTest);
1826
+ smalltalk.SymbolTest);
1615
1827
 
1616
1828
  smalltalk.addMethod(
1617
- "_testAt",
1829
+ "_testComparing",
1618
1830
  smalltalk.method({
1619
- selector: "testAt",
1831
+ selector: "testComparing",
1620
1832
  category: 'tests',
1621
1833
  fn: function (){
1622
1834
  var self=this;
1623
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send(smalltalk.send((smalltalk.Set || Set), "_new", []), "_at_put_", [(1), (2)]);}), (smalltalk.Error || Error)]);
1624
- return self;},
1835
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("ab"),"__gt",[smalltalk.symbolFor("aa")])]);
1836
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("ab"),"__gt",[smalltalk.symbolFor("ba")])]);
1837
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("ab"),"__lt",[smalltalk.symbolFor("ba")])]);
1838
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("bb"),"__lt",[smalltalk.symbolFor("ba")])]);
1839
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("ab"),"__gt_eq",[smalltalk.symbolFor("aa")])]);
1840
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("ab"),"__gt_eq",[smalltalk.symbolFor("ba")])]);
1841
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("ab"),"__lt_eq",[smalltalk.symbolFor("ba")])]);
1842
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("bb"),"__lt_eq",[smalltalk.symbolFor("ba")])]);
1843
+ return self},
1625
1844
  args: [],
1626
- source: "testAt\x0a\x09self should: [Set new at: 1 put: 2] raise: Error",
1627
- messageSends: ["should:raise:", "at:put:", "new"],
1628
- referencedClasses: ["Set", "Error"]
1845
+ source: "testComparing\x0a\x09self assert: #ab > #aa.\x0a\x09self deny: #ab > #ba.\x0a\x0a\x09self assert: #ab < #ba.\x0a\x09self deny: #bb < #ba.\x0a\x0a\x09self assert: #ab >= #aa.\x0a\x09self deny: #ab >= #ba.\x0a\x0a\x09self assert: #ab <= #ba.\x0a\x09self deny: #bb <= #ba",
1846
+ messageSends: ["assert:", ">", "deny:", "<", ">=", "<="],
1847
+ referencedClasses: []
1629
1848
  }),
1630
- smalltalk.SetTest);
1849
+ smalltalk.SymbolTest);
1631
1850
 
1632
1851
  smalltalk.addMethod(
1633
- "_testSize",
1852
+ "_testCopying",
1634
1853
  smalltalk.method({
1635
- selector: "testSize",
1854
+ selector: "testCopying",
1636
1855
  category: 'tests',
1637
1856
  fn: function (){
1638
1857
  var self=this;
1639
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send((smalltalk.Set || Set), "_new", []), "_size", []), (0)]);
1640
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send((smalltalk.Set || Set), "_withAll_", [[(1), (2), (3), (4)]]), "_size", []), (4)]);
1641
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.send((smalltalk.Set || Set), "_withAll_", [[(1), (1), (1), (1)]]), "_size", []), (1)]);
1642
- return self;},
1858
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_copy",[]),"__eq_eq",[smalltalk.symbolFor("hello")])]);
1859
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_deepCopy",[]),"__eq_eq",[smalltalk.symbolFor("hello")])]);
1860
+ return self},
1643
1861
  args: [],
1644
- source: "testSize\x0a\x09self assert: Set new size equals: 0.\x0a\x09self assert: (Set withAll: #(1 2 3 4)) size equals: 4.\x0a\x09self assert: (Set withAll: #(1 1 1 1)) size equals: 1",
1645
- messageSends: ["assert:equals:", "size", "new", "withAll:"],
1646
- referencedClasses: ["Set"]
1862
+ source: "testCopying\x0a\x09self assert: #hello copy == #hello.\x0a\x09self assert: #hello deepCopy == #hello",
1863
+ messageSends: ["assert:", "==", "copy", "deepCopy"],
1864
+ referencedClasses: []
1647
1865
  }),
1648
- smalltalk.SetTest);
1866
+ smalltalk.SymbolTest);
1649
1867
 
1650
1868
  smalltalk.addMethod(
1651
- "_testUnicity",
1869
+ "_testDetect",
1652
1870
  smalltalk.method({
1653
- selector: "testUnicity",
1871
+ selector: "testDetect",
1654
1872
  category: 'tests',
1655
1873
  fn: function (){
1656
1874
  var self=this;
1657
- var set=nil;
1658
- (set=smalltalk.send((smalltalk.Set || Set), "_new", []));
1659
- smalltalk.send(set, "_add_", [(21)]);
1660
- smalltalk.send(set, "_add_", ["hello"]);
1661
- smalltalk.send(set, "_add_", [(21)]);
1662
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(set, "_size", []), "__eq", [(2)])]);
1663
- smalltalk.send(set, "_add_", ["hello"]);
1664
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(set, "_size", []), "__eq", [(2)])]);
1665
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(set, "_asArray", []), [(21), "hello"]]);
1666
- return self;},
1875
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_collection",[]),"_detect_",[(function(each){
1876
+ return smalltalk.send(each,"__eq",["h"]);
1877
+ })]),"__eq",["h"])]);
1878
+ smalltalk.send(self,"_should_raise_",[(function(){
1879
+ return smalltalk.send(smalltalk.send(self,"_collection",[]),"_detect_",[(function(each){
1880
+ return smalltalk.send(each,"__eq",["z"]);
1881
+ })]);
1882
+ }),(smalltalk.Error || Error)]);
1883
+ return self},
1667
1884
  args: [],
1668
- source: "testUnicity\x0a\x09| set |\x0a\x09set := Set new.\x0a\x09set add: 21.\x0a\x09set add: 'hello'.\x0a\x0a\x09set add: 21.\x0a\x09self assert: set size = 2.\x0a\x09\x0a\x09set add: 'hello'.\x0a\x09self assert: set size = 2.\x0a\x0a\x09self assert: set asArray equals: #(21 'hello')",
1669
- messageSends: ["new", "add:", "assert:", "=", "size", "assert:equals:", "asArray"],
1670
- referencedClasses: ["Set"]
1885
+ source: "testDetect\x0a\x09self assert: (self collection detect: [ :each | each = 'h' ]) = 'h'.\x0a\x09self \x0a\x09\x09should: [ self collection detect: [ :each | each = 'z' ] ]\x0a\x09\x09raise: Error",
1886
+ messageSends: ["assert:", "=", "detect:", "collection", "should:raise:"],
1887
+ referencedClasses: ["Error"]
1671
1888
  }),
1672
- smalltalk.SetTest);
1673
-
1674
-
1889
+ smalltalk.SymbolTest);
1675
1890
 
1676
- smalltalk.addClass('StringTest', smalltalk.TestCase, [], 'Kernel-Tests');
1677
1891
  smalltalk.addMethod(
1678
- "_testAddRemove",
1892
+ "_testEquality",
1679
1893
  smalltalk.method({
1680
- selector: "testAddRemove",
1894
+ selector: "testEquality",
1681
1895
  category: 'tests',
1682
1896
  fn: function (){
1683
1897
  var self=this;
1684
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send("hello", "_add_", ["a"]);}), (smalltalk.Error || Error)]);
1685
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send("hello", "_remove_", ["h"]);}), (smalltalk.Error || Error)]);
1686
- return self;},
1898
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq",[smalltalk.symbolFor("hello")])]);
1899
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq",[smalltalk.symbolFor("world")])]);
1900
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq",[smalltalk.send(smalltalk.symbolFor("hello"),"_yourself",[])])]);
1901
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_yourself",[]),"__eq",[smalltalk.symbolFor("hello")])]);
1902
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq",["hello"])]);
1903
+ smalltalk.send(self,"_deny_",[smalltalk.send("hello","__eq",[smalltalk.symbolFor("hello")])]);
1904
+ return self},
1905
+ args: [],
1906
+ source: "testEquality\x0a\x09self assert: #hello = #hello.\x0a\x09self deny: #hello = #world.\x0a\x0a\x09self assert: #hello = #hello yourself.\x0a\x09self assert: #hello yourself = #hello.\x0a\x0a\x09self deny: #hello = 'hello'.\x0a\x09self deny: 'hello' = #hello.",
1907
+ messageSends: ["assert:", "=", "deny:", "yourself"],
1908
+ referencedClasses: []
1909
+ }),
1910
+ smalltalk.SymbolTest);
1911
+
1912
+ smalltalk.addMethod(
1913
+ "_testIdentity",
1914
+ smalltalk.method({
1915
+ selector: "testIdentity",
1916
+ category: 'tests',
1917
+ fn: function (){
1918
+ var self=this;
1919
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq_eq",[smalltalk.symbolFor("hello")])]);
1920
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq_eq",[smalltalk.symbolFor("world")])]);
1921
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("hello"),"__eq",[smalltalk.send(smalltalk.symbolFor("hello"),"_yourself",[])])]);
1922
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_yourself",[]),"__eq",[smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"),"_asString",[]),"_asSymbol",[])])]);
1923
+ return self},
1924
+ args: [],
1925
+ source: "testIdentity\x0a\x09self assert: #hello == #hello.\x0a\x09self deny: #hello == #world.\x0a\x0a\x09self assert: #hello = #hello yourself.\x0a\x09self assert: #hello yourself = #hello asString asSymbol",
1926
+ messageSends: ["assert:", "==", "deny:", "=", "yourself", "asSymbol", "asString"],
1927
+ referencedClasses: []
1928
+ }),
1929
+ smalltalk.SymbolTest);
1930
+
1931
+ smalltalk.addMethod(
1932
+ "_testIsEmpty",
1933
+ smalltalk.method({
1934
+ selector: "testIsEmpty",
1935
+ category: 'tests',
1936
+ fn: function (){
1937
+ var self=this;
1938
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_isEmpty",[])]);
1939
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send("","_asSymbol",[]),"_isEmpty",[])]);
1940
+ return self},
1941
+ args: [],
1942
+ source: "testIsEmpty\x0a\x09self deny: self collection isEmpty.\x0a\x09self assert: '' asSymbol isEmpty",
1943
+ messageSends: ["deny:", "isEmpty", "collection", "assert:", "asSymbol"],
1944
+ referencedClasses: []
1945
+ }),
1946
+ smalltalk.SymbolTest);
1947
+
1948
+ smalltalk.addMethod(
1949
+ "_testIsSymbolIsString",
1950
+ smalltalk.method({
1951
+ selector: "testIsSymbolIsString",
1952
+ category: 'tests',
1953
+ fn: function (){
1954
+ var self=this;
1955
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.symbolFor("hello"),"_isSymbol",[])]);
1956
+ smalltalk.send(self,"_deny_",[smalltalk.send("hello","_isSymbol",[])]);
1957
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.symbolFor("hello"),"_isString",[])]);
1958
+ smalltalk.send(self,"_assert_",[smalltalk.send("hello","_isString",[])]);
1959
+ return self},
1960
+ args: [],
1961
+ source: "testIsSymbolIsString\x0a\x09self assert: #hello isSymbol.\x0a\x09self deny: 'hello' isSymbol.\x0a\x09self deny: #hello isString.\x0a\x09self assert: 'hello' isString",
1962
+ messageSends: ["assert:", "isSymbol", "deny:", "isString"],
1963
+ referencedClasses: []
1964
+ }),
1965
+ smalltalk.SymbolTest);
1966
+
1967
+ smalltalk.addMethod(
1968
+ "_testSelect",
1969
+ smalltalk.method({
1970
+ selector: "testSelect",
1971
+ category: 'tests',
1972
+ fn: function (){
1973
+ var self=this;
1974
+ var newCollection;
1975
+ newCollection="o";
1976
+ smalltalk.send(self,"_assertSameContents_as_",[smalltalk.send(smalltalk.send(self,"_collection",[]),"_select_",[(function(each){
1977
+ return smalltalk.send(each,"__eq",["o"]);
1978
+ })]),newCollection]);
1979
+ return self},
1980
+ args: [],
1981
+ source: "testSelect\x0a\x09| newCollection |\x0a\x09newCollection := 'o'.\x0a\x09self \x0a\x09\x09assertSameContents: (self collection select: [ :each |\x0a\x09\x09\x09each = 'o' ])\x0a\x09\x09as: newCollection",
1982
+ messageSends: ["assertSameContents:as:", "select:", "=", "collection"],
1983
+ referencedClasses: []
1984
+ }),
1985
+ smalltalk.SymbolTest);
1986
+
1987
+ smalltalk.addMethod(
1988
+ "_testSize",
1989
+ smalltalk.method({
1990
+ selector: "testSize",
1991
+ category: 'tests',
1992
+ fn: function (){
1993
+ var self=this;
1994
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.symbolFor("a"),"_size",[]),(1)]);
1995
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.symbolFor("aaaaa"),"_size",[]),(5)]);
1996
+ return self},
1997
+ args: [],
1998
+ source: "testSize\x0a\x09self assert: #a size equals: 1.\x0a\x09self assert: #aaaaa size equals: 5",
1999
+ messageSends: ["assert:equals:", "size"],
2000
+ referencedClasses: []
2001
+ }),
2002
+ smalltalk.SymbolTest);
2003
+
2004
+
2005
+ smalltalk.addMethod(
2006
+ "_collectionClass",
2007
+ smalltalk.method({
2008
+ selector: "collectionClass",
2009
+ category: 'accessing',
2010
+ fn: function (){
2011
+ var self=this;
2012
+ return (smalltalk.Symbol || Symbol);
2013
+ },
2014
+ args: [],
2015
+ source: "collectionClass\x0a\x09^ Symbol",
2016
+ messageSends: [],
2017
+ referencedClasses: ["Symbol"]
2018
+ }),
2019
+ smalltalk.SymbolTest.klass);
2020
+
2021
+
2022
+ smalltalk.addClass('JSObjectProxyTest', smalltalk.TestCase, [], 'Kernel-Tests');
2023
+ smalltalk.addMethod(
2024
+ "_jsObject",
2025
+ smalltalk.method({
2026
+ selector: "jsObject",
2027
+ category: 'accessing',
2028
+ fn: function (){
2029
+ var self=this;
2030
+ return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}, d: ''};
2031
+ ;
2032
+ return self},
2033
+ args: [],
2034
+ source: "jsObject\x0a\x09<return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}, d: ''}>",
2035
+ messageSends: [],
2036
+ referencedClasses: []
2037
+ }),
2038
+ smalltalk.JSObjectProxyTest);
2039
+
2040
+ smalltalk.addMethod(
2041
+ "_testDNU",
2042
+ smalltalk.method({
2043
+ selector: "testDNU",
2044
+ category: 'tests',
2045
+ fn: function (){
2046
+ var self=this;
2047
+ smalltalk.send(self,"_should_raise_",[(function(){
2048
+ return smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_foo",[]);
2049
+ }),(smalltalk.MessageNotUnderstood || MessageNotUnderstood)]);
2050
+ return self},
2051
+ args: [],
2052
+ source: "testDNU\x0a\x09self should: [self jsObject foo] raise: MessageNotUnderstood",
2053
+ messageSends: ["should:raise:", "foo", "jsObject"],
2054
+ referencedClasses: ["MessageNotUnderstood"]
2055
+ }),
2056
+ smalltalk.JSObjectProxyTest);
2057
+
2058
+ smalltalk.addMethod(
2059
+ "_testMessageSend",
2060
+ smalltalk.method({
2061
+ selector: "testMessageSend",
2062
+ category: 'tests',
2063
+ fn: function (){
2064
+ var self=this;
2065
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_a",[]),(1)]);
2066
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_b",[]),(2)]);
2067
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_c_",[(3)]),(3)]);
2068
+ return self},
2069
+ args: [],
2070
+ source: "testMessageSend\x0a\x0a\x09self assert: self jsObject a equals: 1.\x0a\x09self assert: self jsObject b equals: 2.\x0a\x09self assert: (self jsObject c: 3) equals: 3",
2071
+ messageSends: ["assert:equals:", "a", "jsObject", "b", "c:"],
2072
+ referencedClasses: []
2073
+ }),
2074
+ smalltalk.JSObjectProxyTest);
2075
+
2076
+ smalltalk.addMethod(
2077
+ "_testMethodWithArguments",
2078
+ smalltalk.method({
2079
+ selector: "testMethodWithArguments",
2080
+ category: 'tests',
2081
+ fn: function (){
2082
+ var self=this;
2083
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_c_",[(1)]),(1)]);
2084
+ return self},
2085
+ args: [],
2086
+ source: "testMethodWithArguments\x0a\x09self assert: (self jsObject c: 1) equals: 1",
2087
+ messageSends: ["assert:equals:", "c:", "jsObject"],
2088
+ referencedClasses: []
2089
+ }),
2090
+ smalltalk.JSObjectProxyTest);
2091
+
2092
+ smalltalk.addMethod(
2093
+ "_testPrinting",
2094
+ smalltalk.method({
2095
+ selector: "testPrinting",
2096
+ category: 'tests',
2097
+ fn: function (){
2098
+ var self=this;
2099
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_printString",[]),"__eq",["[object Object]"])]);
2100
+ return self},
2101
+ args: [],
2102
+ source: "testPrinting\x0a\x09self assert: self jsObject printString = '[object Object]'",
2103
+ messageSends: ["assert:", "=", "printString", "jsObject"],
2104
+ referencedClasses: []
2105
+ }),
2106
+ smalltalk.JSObjectProxyTest);
2107
+
2108
+ smalltalk.addMethod(
2109
+ "_testPropertyThatReturnsEmptyString",
2110
+ smalltalk.method({
2111
+ selector: "testPropertyThatReturnsEmptyString",
2112
+ category: 'tests',
2113
+ fn: function (){
2114
+ var self=this;
2115
+ var object;
2116
+ object=smalltalk.send(self,"_jsObject",[]);
2117
+ smalltalk.send(self,"_assert_equals_",["",smalltalk.send(object,"_d",[])]);
2118
+ smalltalk.send(object,"_d_",["hello"]);
2119
+ smalltalk.send(self,"_assert_equals_",["hello",smalltalk.send(object,"_d",[])]);
2120
+ return self},
2121
+ args: [],
2122
+ source: "testPropertyThatReturnsEmptyString\x0a\x09| object |\x0a\x0a\x09object := self jsObject.\x0a\x09self assert: '' equals: object d.\x0a\x0a\x09object d: 'hello'.\x0a\x09self assert: 'hello' equals: object d",
2123
+ messageSends: ["jsObject", "assert:equals:", "d", "d:"],
2124
+ referencedClasses: []
2125
+ }),
2126
+ smalltalk.JSObjectProxyTest);
2127
+
2128
+ smalltalk.addMethod(
2129
+ "_testYourself",
2130
+ smalltalk.method({
2131
+ selector: "testYourself",
2132
+ category: 'tests',
2133
+ fn: function (){
2134
+ var self=this;
2135
+ var $1,$2;
2136
+ var object;
2137
+ $1=smalltalk.send(self,"_jsObject",[]);
2138
+ smalltalk.send($1,"_d_",["test"]);
2139
+ $2=smalltalk.send($1,"_yourself",[]);
2140
+ object=$2;
2141
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(object,"_d",[]),"test"]);
2142
+ return self},
2143
+ args: [],
2144
+ source: "testYourself\x0a\x09| object |\x0a\x09object := self jsObject\x0a\x09\x09d: 'test';\x0a\x09\x09yourself.\x0a\x0a\x09self assert: object d equals: 'test'",
2145
+ messageSends: ["d:", "jsObject", "yourself", "assert:equals:", "d"],
2146
+ referencedClasses: []
2147
+ }),
2148
+ smalltalk.JSObjectProxyTest);
2149
+
2150
+
2151
+
2152
+ smalltalk.addClass('NumberTest', smalltalk.TestCase, [], 'Kernel-Tests');
2153
+ smalltalk.addMethod(
2154
+ "_testAbs",
2155
+ smalltalk.method({
2156
+ selector: "testAbs",
2157
+ category: 'tests',
2158
+ fn: function (){
2159
+ var self=this;
2160
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((4),"_abs",[]),"__eq",[(4)])]);
2161
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((-4),"_abs",[]),"__eq",[(4)])]);
2162
+ return self},
2163
+ args: [],
2164
+ source: "testAbs\x0a\x09self assert: 4 abs = 4.\x0a\x09self assert: -4 abs = 4",
2165
+ messageSends: ["assert:", "=", "abs"],
2166
+ referencedClasses: []
2167
+ }),
2168
+ smalltalk.NumberTest);
2169
+
2170
+ smalltalk.addMethod(
2171
+ "_testArithmetic",
2172
+ smalltalk.method({
2173
+ selector: "testArithmetic",
2174
+ category: 'tests',
2175
+ fn: function (){
2176
+ var self=this;
2177
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1.5),"__plus",[(1)]),"__eq",[(2.5)])]);
2178
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((2),"__minus",[(1)]),"__eq",[(1)])]);
2179
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((-2),"__minus",[(1)]),"__eq",[(-3)])]);
2180
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((12),"__slash",[(2)]),"__eq",[(6)])]);
2181
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3),"__star",[(4)]),"__eq",[(12)])]);
2182
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send((1),"__plus",[(2)]),"__star",[(3)]),"__eq",[(9)])]);
2183
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"__plus",[smalltalk.send((2),"__star",[(3)])]),"__eq",[(7)])]);
2184
+ return self},
2185
+ args: [],
2186
+ source: "testArithmetic\x0a\x09\x0a\x09\x22We rely on JS here, so we won't test complex behavior, just check if \x0a\x09message sends are corrects\x22\x0a\x0a\x09self assert: 1.5 + 1 = 2.5.\x0a\x09self assert: 2 - 1 = 1.\x0a\x09self assert: -2 - 1 = -3.\x0a\x09self assert: 12 / 2 = 6.\x0a\x09self assert: 3 * 4 = 12.\x0a\x0a\x09\x22Simple parenthesis and execution order\x22\x0a\x0a\x09self assert: 1 + 2 * 3 = 9.\x0a\x09self assert: 1 + (2 * 3) = 7",
2187
+ messageSends: ["assert:", "=", "+", "-", "/", "*"],
2188
+ referencedClasses: []
2189
+ }),
2190
+ smalltalk.NumberTest);
2191
+
2192
+ smalltalk.addMethod(
2193
+ "_testComparison",
2194
+ smalltalk.method({
2195
+ selector: "testComparison",
2196
+ category: 'tests',
2197
+ fn: function (){
2198
+ var self=this;
2199
+ smalltalk.send(self,"_assert_",[smalltalk.send((3),"__gt",[(2)])]);
2200
+ smalltalk.send(self,"_assert_",[smalltalk.send((2),"__lt",[(3)])]);
2201
+ smalltalk.send(self,"_deny_",[smalltalk.send((3),"__lt",[(2)])]);
2202
+ smalltalk.send(self,"_deny_",[smalltalk.send((2),"__gt",[(3)])]);
2203
+ smalltalk.send(self,"_assert_",[smalltalk.send((3),"__gt_eq",[(3)])]);
2204
+ smalltalk.send(self,"_assert_",[smalltalk.send((3.1),"__gt_eq",[(3)])]);
2205
+ smalltalk.send(self,"_assert_",[smalltalk.send((3),"__lt_eq",[(3)])]);
2206
+ smalltalk.send(self,"_assert_",[smalltalk.send((3),"__lt_eq",[(3.1)])]);
2207
+ return self},
2208
+ args: [],
2209
+ source: "testComparison\x0a\x0a\x09self assert: 3 > 2.\x0a\x09self assert: 2 < 3.\x0a\x09\x0a\x09self deny: 3 < 2.\x0a\x09self deny: 2 > 3.\x0a\x0a\x09self assert: 3 >= 3.\x0a\x09self assert: 3.1 >= 3.\x0a\x09self assert: 3 <= 3.\x0a\x09self assert: 3 <= 3.1",
2210
+ messageSends: ["assert:", ">", "<", "deny:", ">=", "<="],
2211
+ referencedClasses: []
2212
+ }),
2213
+ smalltalk.NumberTest);
2214
+
2215
+ smalltalk.addMethod(
2216
+ "_testCopying",
2217
+ smalltalk.method({
2218
+ selector: "testCopying",
2219
+ category: 'tests',
2220
+ fn: function (){
2221
+ var self=this;
2222
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"_copy",[]),"__eq_eq",[(1)])]);
2223
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"_deepCopy",[]),"__eq_eq",[(1)])]);
2224
+ return self},
2225
+ args: [],
2226
+ source: "testCopying\x0a\x09self assert: 1 copy == 1.\x0a\x09self assert: 1 deepCopy == 1",
2227
+ messageSends: ["assert:", "==", "copy", "deepCopy"],
2228
+ referencedClasses: []
2229
+ }),
2230
+ smalltalk.NumberTest);
2231
+
2232
+ smalltalk.addMethod(
2233
+ "_testEquality",
2234
+ smalltalk.method({
2235
+ selector: "testEquality",
2236
+ category: 'tests',
2237
+ fn: function (){
2238
+ var self=this;
2239
+ smalltalk.send(self,"_assert_",[smalltalk.send((1),"__eq",[(1)])]);
2240
+ smalltalk.send(self,"_assert_",[smalltalk.send((0),"__eq",[(0)])]);
2241
+ smalltalk.send(self,"_deny_",[smalltalk.send((1),"__eq",[(0)])]);
2242
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"_yourself",[]),"__eq",[(1)])]);
2243
+ smalltalk.send(self,"_assert_",[smalltalk.send((1),"__eq",[smalltalk.send((1),"_yourself",[])])]);
2244
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"_yourself",[]),"__eq",[smalltalk.send((1),"_yourself",[])])]);
2245
+ smalltalk.send(self,"_deny_",[smalltalk.send((0),"__eq",[false])]);
2246
+ smalltalk.send(self,"_deny_",[smalltalk.send(false,"__eq",[(0)])]);
2247
+ smalltalk.send(self,"_deny_",[smalltalk.send("","__eq",[(0)])]);
2248
+ smalltalk.send(self,"_deny_",[smalltalk.send((0),"__eq",[""])]);
2249
+ return self},
2250
+ args: [],
2251
+ source: "testEquality\x0a\x09self assert: 1 = 1.\x0a\x09self assert: 0 = 0.\x0a\x09self deny: 1 = 0.\x0a\x0a\x09self assert: 1 yourself = 1.\x0a\x09self assert: 1 = 1 yourself.\x0a\x09self assert: 1 yourself = 1 yourself.\x0a\x09\x0a\x09self deny: 0 = false.\x0a\x09self deny: false = 0.\x0a\x09self deny: '' = 0.\x0a\x09self deny: 0 = ''",
2252
+ messageSends: ["assert:", "=", "deny:", "yourself"],
2253
+ referencedClasses: []
2254
+ }),
2255
+ smalltalk.NumberTest);
2256
+
2257
+ smalltalk.addMethod(
2258
+ "_testIdentity",
2259
+ smalltalk.method({
2260
+ selector: "testIdentity",
2261
+ category: 'tests',
2262
+ fn: function (){
2263
+ var self=this;
2264
+ smalltalk.send(self,"_assert_",[smalltalk.send((1),"__eq_eq",[(1)])]);
2265
+ smalltalk.send(self,"_assert_",[smalltalk.send((0),"__eq_eq",[(0)])]);
2266
+ smalltalk.send(self,"_deny_",[smalltalk.send((1),"__eq_eq",[(0)])]);
2267
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"_yourself",[]),"__eq_eq",[(1)])]);
2268
+ smalltalk.send(self,"_assert_",[smalltalk.send((1),"__eq_eq",[smalltalk.send((1),"_yourself",[])])]);
2269
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((1),"_yourself",[]),"__eq_eq",[smalltalk.send((1),"_yourself",[])])]);
2270
+ smalltalk.send(self,"_deny_",[smalltalk.send((1),"__eq_eq",[(2)])]);
2271
+ return self},
2272
+ args: [],
2273
+ source: "testIdentity\x0a\x09self assert: 1 == 1.\x0a\x09self assert: 0 == 0.\x0a\x09self deny: 1 == 0.\x0a\x0a\x09self assert: 1 yourself == 1.\x0a\x09self assert: 1 == 1 yourself.\x0a\x09self assert: 1 yourself == 1 yourself.\x0a\x09\x0a\x09self deny: 1 == 2",
2274
+ messageSends: ["assert:", "==", "deny:", "yourself"],
2275
+ referencedClasses: []
2276
+ }),
2277
+ smalltalk.NumberTest);
2278
+
2279
+ smalltalk.addMethod(
2280
+ "_testMinMax",
2281
+ smalltalk.method({
2282
+ selector: "testMinMax",
2283
+ category: 'tests',
2284
+ fn: function (){
2285
+ var self=this;
2286
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((2),"_max_",[(5)]),(5)]);
2287
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((2),"_min_",[(5)]),(2)]);
2288
+ return self},
2289
+ args: [],
2290
+ source: "testMinMax\x0a\x09\x0a\x09self assert: (2 max: 5) equals: 5.\x0a\x09self assert: (2 min: 5) equals: 2",
2291
+ messageSends: ["assert:equals:", "max:", "min:"],
2292
+ referencedClasses: []
2293
+ }),
2294
+ smalltalk.NumberTest);
2295
+
2296
+ smalltalk.addMethod(
2297
+ "_testNegated",
2298
+ smalltalk.method({
2299
+ selector: "testNegated",
2300
+ category: 'tests',
2301
+ fn: function (){
2302
+ var self=this;
2303
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3),"_negated",[]),"__eq",[(-3)])]);
2304
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((-3),"_negated",[]),"__eq",[(3)])]);
2305
+ return self},
2306
+ args: [],
2307
+ source: "testNegated\x0a\x09self assert: 3 negated = -3.\x0a\x09self assert: -3 negated = 3",
2308
+ messageSends: ["assert:", "=", "negated"],
2309
+ referencedClasses: []
2310
+ }),
2311
+ smalltalk.NumberTest);
2312
+
2313
+ smalltalk.addMethod(
2314
+ "_testPrintShowingDecimalPlaces",
2315
+ smalltalk.method({
2316
+ selector: "testPrintShowingDecimalPlaces",
2317
+ category: 'tests',
2318
+ fn: function (){
2319
+ var self=this;
2320
+ smalltalk.send(self,"_assert_equals_",["23.00",smalltalk.send((23),"_printShowingDecimalPlaces_",[(2)])]);
2321
+ smalltalk.send(self,"_assert_equals_",["23.57",smalltalk.send((23.5698),"_printShowingDecimalPlaces_",[(2)])]);
2322
+ smalltalk.send(self,"_assert_equals_",["-234.56700",smalltalk.send(smalltalk.send((234.567),"_negated",[]),"_printShowingDecimalPlaces_",[(5)])]);
2323
+ smalltalk.send(self,"_assert_equals_",["23",smalltalk.send((23.4567),"_printShowingDecimalPlaces_",[(0)])]);
2324
+ smalltalk.send(self,"_assert_equals_",["24",smalltalk.send((23.5567),"_printShowingDecimalPlaces_",[(0)])]);
2325
+ smalltalk.send(self,"_assert_equals_",["-23",smalltalk.send(smalltalk.send((23.4567),"_negated",[]),"_printShowingDecimalPlaces_",[(0)])]);
2326
+ smalltalk.send(self,"_assert_equals_",["-24",smalltalk.send(smalltalk.send((23.5567),"_negated",[]),"_printShowingDecimalPlaces_",[(0)])]);
2327
+ smalltalk.send(self,"_assert_equals_",["100000000.0",smalltalk.send((100000000),"_printShowingDecimalPlaces_",[(1)])]);
2328
+ smalltalk.send(self,"_assert_equals_",["0.98000",smalltalk.send((0.98),"_printShowingDecimalPlaces_",[(5)])]);
2329
+ smalltalk.send(self,"_assert_equals_",["-0.98",smalltalk.send(smalltalk.send((0.98),"_negated",[]),"_printShowingDecimalPlaces_",[(2)])]);
2330
+ smalltalk.send(self,"_assert_equals_",["2.57",smalltalk.send((2.567),"_printShowingDecimalPlaces_",[(2)])]);
2331
+ smalltalk.send(self,"_assert_equals_",["-2.57",smalltalk.send((-2.567),"_printShowingDecimalPlaces_",[(2)])]);
2332
+ smalltalk.send(self,"_assert_equals_",["0.00",smalltalk.send((0),"_printShowingDecimalPlaces_",[(2)])]);
2333
+ return self},
2334
+ args: [],
2335
+ source: "testPrintShowingDecimalPlaces\x0a\x09self assert: '23.00' equals: (23 printShowingDecimalPlaces: 2).\x0a\x09self assert: '23.57' equals: (23.5698 printShowingDecimalPlaces: 2).\x0a\x09self assert: '-234.56700' equals:( 234.567 negated printShowingDecimalPlaces: 5).\x0a\x09self assert: '23' equals: (23.4567 printShowingDecimalPlaces: 0).\x0a\x09self assert: '24' equals: (23.5567 printShowingDecimalPlaces: 0).\x0a\x09self assert: '-23' equals: (23.4567 negated printShowingDecimalPlaces: 0).\x0a\x09self assert: '-24' equals: (23.5567 negated printShowingDecimalPlaces: 0).\x0a\x09self assert: '100000000.0' equals: (100000000 printShowingDecimalPlaces: 1).\x0a\x09self assert: '0.98000' equals: (0.98 printShowingDecimalPlaces: 5).\x0a\x09self assert: '-0.98' equals: (0.98 negated printShowingDecimalPlaces: 2).\x0a\x09self assert: '2.57' equals: (2.567 printShowingDecimalPlaces: 2).\x0a\x09self assert: '-2.57' equals: (-2.567 printShowingDecimalPlaces: 2).\x0a\x09self assert: '0.00' equals: (0 printShowingDecimalPlaces: 2).",
2336
+ messageSends: ["assert:equals:", "printShowingDecimalPlaces:", "negated"],
2337
+ referencedClasses: []
2338
+ }),
2339
+ smalltalk.NumberTest);
2340
+
2341
+ smalltalk.addMethod(
2342
+ "_testRounded",
2343
+ smalltalk.method({
2344
+ selector: "testRounded",
2345
+ category: 'tests',
2346
+ fn: function (){
2347
+ var self=this;
2348
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3),"_rounded",[]),"__eq",[(3)])]);
2349
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3.212),"_rounded",[]),"__eq",[(3)])]);
2350
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3.51),"_rounded",[]),"__eq",[(4)])]);
2351
+ return self},
2352
+ args: [],
2353
+ source: "testRounded\x0a\x09\x0a\x09self assert: 3 rounded = 3.\x0a\x09self assert: 3.212 rounded = 3.\x0a\x09self assert: 3.51 rounded = 4",
2354
+ messageSends: ["assert:", "=", "rounded"],
2355
+ referencedClasses: []
2356
+ }),
2357
+ smalltalk.NumberTest);
2358
+
2359
+ smalltalk.addMethod(
2360
+ "_testSqrt",
2361
+ smalltalk.method({
2362
+ selector: "testSqrt",
2363
+ category: 'tests',
2364
+ fn: function (){
2365
+ var self=this;
2366
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((4),"_sqrt",[]),"__eq",[(2)])]);
2367
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((16),"_sqrt",[]),"__eq",[(4)])]);
2368
+ return self},
2369
+ args: [],
2370
+ source: "testSqrt\x0a\x09\x0a\x09self assert: 4 sqrt = 2.\x0a\x09self assert: 16 sqrt = 4",
2371
+ messageSends: ["assert:", "=", "sqrt"],
2372
+ referencedClasses: []
2373
+ }),
2374
+ smalltalk.NumberTest);
2375
+
2376
+ smalltalk.addMethod(
2377
+ "_testSquared",
2378
+ smalltalk.method({
2379
+ selector: "testSquared",
2380
+ category: 'tests',
2381
+ fn: function (){
2382
+ var self=this;
2383
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((4),"_squared",[]),"__eq",[(16)])]);
2384
+ return self},
2385
+ args: [],
2386
+ source: "testSquared\x0a\x09\x0a\x09self assert: 4 squared = 16",
2387
+ messageSends: ["assert:", "=", "squared"],
2388
+ referencedClasses: []
2389
+ }),
2390
+ smalltalk.NumberTest);
2391
+
2392
+ smalltalk.addMethod(
2393
+ "_testTimesRepeat",
2394
+ smalltalk.method({
2395
+ selector: "testTimesRepeat",
2396
+ category: 'tests',
2397
+ fn: function (){
2398
+ var self=this;
2399
+ var i;
2400
+ i=(0);
2401
+ smalltalk.send((0),"_timesRepeat_",[(function(){
2402
+ i=smalltalk.send(i,"__plus",[(1)]);
2403
+ return i;
2404
+ })]);
2405
+ smalltalk.send(self,"_assert_equals_",[i,(0)]);
2406
+ smalltalk.send((5),"_timesRepeat_",[(function(){
2407
+ i=smalltalk.send(i,"__plus",[(1)]);
2408
+ return i;
2409
+ })]);
2410
+ smalltalk.send(self,"_assert_equals_",[i,(5)]);
2411
+ return self},
2412
+ args: [],
2413
+ source: "testTimesRepeat\x0a\x09| i |\x0a\x0a\x09i := 0.\x0a\x090 timesRepeat: [i := i + 1].\x0a\x09self assert: i equals: 0.\x0a\x0a\x095 timesRepeat: [i := i + 1].\x0a\x09self assert: i equals: 5",
2414
+ messageSends: ["timesRepeat:", "+", "assert:equals:"],
2415
+ referencedClasses: []
2416
+ }),
2417
+ smalltalk.NumberTest);
2418
+
2419
+ smalltalk.addMethod(
2420
+ "_testTo",
2421
+ smalltalk.method({
2422
+ selector: "testTo",
2423
+ category: 'tests',
2424
+ fn: function (){
2425
+ var self=this;
2426
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((1),"_to_",[(5)]),[(1), (2), (3), (4), (5)]]);
2427
+ return self},
2428
+ args: [],
2429
+ source: "testTo\x0a\x09self assert: (1 to: 5) equals: #(1 2 3 4 5)",
2430
+ messageSends: ["assert:equals:", "to:"],
2431
+ referencedClasses: []
2432
+ }),
2433
+ smalltalk.NumberTest);
2434
+
2435
+ smalltalk.addMethod(
2436
+ "_testToBy",
2437
+ smalltalk.method({
2438
+ selector: "testToBy",
2439
+ category: 'tests',
2440
+ fn: function (){
2441
+ var self=this;
2442
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((0),"_to_by_",[(6),(2)]),[(0), (2), (4), (6)]]);
2443
+ smalltalk.send(self,"_should_raise_",[(function(){
2444
+ return smalltalk.send((1),"_to_by_",[(4),(0)]);
2445
+ }),(smalltalk.Error || Error)]);
2446
+ return self},
2447
+ args: [],
2448
+ source: "testToBy\x0a\x09self assert: (0 to: 6 by: 2) equals: #(0 2 4 6).\x0a\x0a\x09self should: [1 to: 4 by: 0] raise: Error",
2449
+ messageSends: ["assert:equals:", "to:by:", "should:raise:"],
2450
+ referencedClasses: ["Error"]
2451
+ }),
2452
+ smalltalk.NumberTest);
2453
+
2454
+ smalltalk.addMethod(
2455
+ "_testTruncated",
2456
+ smalltalk.method({
2457
+ selector: "testTruncated",
2458
+ category: 'tests',
2459
+ fn: function (){
2460
+ var self=this;
2461
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3),"_truncated",[]),"__eq",[(3)])]);
2462
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3.212),"_truncated",[]),"__eq",[(3)])]);
2463
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3.51),"_truncated",[]),"__eq",[(3)])]);
2464
+ return self},
2465
+ args: [],
2466
+ source: "testTruncated\x0a\x09\x0a\x09self assert: 3 truncated = 3.\x0a\x09self assert: 3.212 truncated = 3.\x0a\x09self assert: 3.51 truncated = 3",
2467
+ messageSends: ["assert:", "=", "truncated"],
2468
+ referencedClasses: []
2469
+ }),
2470
+ smalltalk.NumberTest);
2471
+
2472
+
2473
+
2474
+ smalltalk.addClass('ObjectMock', smalltalk.Object, ['foo', 'bar'], 'Kernel-Tests');
2475
+ smalltalk.addMethod(
2476
+ "_foo",
2477
+ smalltalk.method({
2478
+ selector: "foo",
2479
+ category: 'not yet classified',
2480
+ fn: function (){
2481
+ var self=this;
2482
+ return self["@foo"];
2483
+ },
2484
+ args: [],
2485
+ source: "foo\x0a\x09^foo",
2486
+ messageSends: [],
2487
+ referencedClasses: []
2488
+ }),
2489
+ smalltalk.ObjectMock);
2490
+
2491
+ smalltalk.addMethod(
2492
+ "_foo_",
2493
+ smalltalk.method({
2494
+ selector: "foo:",
2495
+ category: 'not yet classified',
2496
+ fn: function (anObject){
2497
+ var self=this;
2498
+ self["@foo"]=anObject;
2499
+ return self},
2500
+ args: ["anObject"],
2501
+ source: "foo: anObject\x0a\x09foo := anObject",
2502
+ messageSends: [],
2503
+ referencedClasses: []
2504
+ }),
2505
+ smalltalk.ObjectMock);
2506
+
2507
+
2508
+
2509
+ smalltalk.addClass('ObjectTest', smalltalk.TestCase, [], 'Kernel-Tests');
2510
+ smalltalk.addMethod(
2511
+ "_testBasicAccess",
2512
+ smalltalk.method({
2513
+ selector: "testBasicAccess",
2514
+ category: 'tests',
2515
+ fn: function (){
2516
+ var self=this;
2517
+ var o;
2518
+ o=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2519
+ smalltalk.send(o,"_basicAt_put_",["a",(1)]);
2520
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_basicAt_",["a"]),(1)]);
2521
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_basicAt_",["b"]),nil]);
2522
+ return self},
2523
+ args: [],
2524
+ source: "testBasicAccess\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09o basicAt: 'a' put: 1.\x0a\x09self assert: (o basicAt: 'a') equals: 1.\x0a\x09self assert: (o basicAt: 'b') equals: nil",
2525
+ messageSends: ["new", "basicAt:put:", "assert:equals:", "basicAt:"],
2526
+ referencedClasses: ["Object"]
2527
+ }),
2528
+ smalltalk.ObjectTest);
2529
+
2530
+ smalltalk.addMethod(
2531
+ "_testBasicPerform",
2532
+ smalltalk.method({
2533
+ selector: "testBasicPerform",
2534
+ category: 'tests',
2535
+ fn: function (){
2536
+ var self=this;
2537
+ var o;
2538
+ o=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2539
+ smalltalk.send(o,"_basicAt_put_",["func",(function(){
2540
+ return "hello";
2541
+ })]);
2542
+ smalltalk.send(o,"_basicAt_put_",["func2",(function(a){
2543
+ return smalltalk.send(a,"__plus",[(1)]);
2544
+ })]);
2545
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_basicPerform_",["func"]),"hello"]);
2546
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_basicPerform_withArguments_",["func2",[(3)]]),(4)]);
2547
+ return self},
2548
+ args: [],
2549
+ source: "testBasicPerform\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09o basicAt: 'func' put: ['hello'].\x09\x0a\x09o basicAt: 'func2' put: [:a | a + 1].\x0a\x0a\x09self assert: (o basicPerform: 'func')\x09 equals: 'hello'.\x0a\x09self assert: (o basicPerform: 'func2' withArguments: #(3)) equals: 4",
2550
+ messageSends: ["new", "basicAt:put:", "+", "assert:equals:", "basicPerform:", "basicPerform:withArguments:"],
2551
+ referencedClasses: ["Object"]
2552
+ }),
2553
+ smalltalk.ObjectTest);
2554
+
2555
+ smalltalk.addMethod(
2556
+ "_testDNU",
2557
+ smalltalk.method({
2558
+ selector: "testDNU",
2559
+ category: 'tests',
2560
+ fn: function (){
2561
+ var self=this;
2562
+ smalltalk.send(self,"_should_raise_",[(function(){
2563
+ return smalltalk.send(smalltalk.send((smalltalk.Object || Object),"_new",[]),"_foo",[]);
2564
+ }),(smalltalk.MessageNotUnderstood || MessageNotUnderstood)]);
2565
+ return self},
2566
+ args: [],
2567
+ source: "testDNU\x0a\x09self should: [Object new foo] raise: MessageNotUnderstood",
2568
+ messageSends: ["should:raise:", "foo", "new"],
2569
+ referencedClasses: ["Object", "MessageNotUnderstood"]
2570
+ }),
2571
+ smalltalk.ObjectTest);
2572
+
2573
+ smalltalk.addMethod(
2574
+ "_testEquality",
2575
+ smalltalk.method({
2576
+ selector: "testEquality",
2577
+ category: 'tests',
2578
+ fn: function (){
2579
+ var self=this;
2580
+ var o;
2581
+ o=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2582
+ smalltalk.send(self,"_deny_",[smalltalk.send(o,"__eq",[smalltalk.send((smalltalk.Object || Object),"_new",[])])]);
2583
+ smalltalk.send(self,"_assert_",[smalltalk.send(o,"__eq",[o])]);
2584
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(o,"_yourself",[]),"__eq",[o])]);
2585
+ smalltalk.send(self,"_assert_",[smalltalk.send(o,"__eq",[smalltalk.send(o,"_yourself",[])])]);
2586
+ return self},
2587
+ args: [],
2588
+ source: "testEquality\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09self deny: o = Object new.\x0a\x09self assert: o = o.\x0a\x09self assert: o yourself = o.\x0a\x09self assert: o = o yourself",
2589
+ messageSends: ["new", "deny:", "=", "assert:", "yourself"],
2590
+ referencedClasses: ["Object"]
2591
+ }),
2592
+ smalltalk.ObjectTest);
2593
+
2594
+ smalltalk.addMethod(
2595
+ "_testHalt",
2596
+ smalltalk.method({
2597
+ selector: "testHalt",
2598
+ category: 'tests',
2599
+ fn: function (){
2600
+ var self=this;
2601
+ smalltalk.send(self,"_should_raise_",[(function(){
2602
+ return smalltalk.send(smalltalk.send((smalltalk.Object || Object),"_new",[]),"_halt",[]);
2603
+ }),(smalltalk.Error || Error)]);
2604
+ return self},
2605
+ args: [],
2606
+ source: "testHalt\x0a\x09self should: [Object new halt] raise: Error",
2607
+ messageSends: ["should:raise:", "halt", "new"],
2608
+ referencedClasses: ["Object", "Error"]
2609
+ }),
2610
+ smalltalk.ObjectTest);
2611
+
2612
+ smalltalk.addMethod(
2613
+ "_testIdentity",
2614
+ smalltalk.method({
2615
+ selector: "testIdentity",
2616
+ category: 'tests',
2617
+ fn: function (){
2618
+ var self=this;
2619
+ var o;
2620
+ o=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2621
+ smalltalk.send(self,"_deny_",[smalltalk.send(o,"__eq_eq",[smalltalk.send((smalltalk.Object || Object),"_new",[])])]);
2622
+ smalltalk.send(self,"_assert_",[smalltalk.send(o,"__eq_eq",[o])]);
2623
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(o,"_yourself",[]),"__eq_eq",[o])]);
2624
+ smalltalk.send(self,"_assert_",[smalltalk.send(o,"__eq_eq",[smalltalk.send(o,"_yourself",[])])]);
2625
+ return self},
2626
+ args: [],
2627
+ source: "testIdentity\x0a\x09| o |\x0a\x09o := Object new.\x0a\x09self deny: o == Object new.\x0a\x09self assert: o == o.\x0a\x09self assert: o yourself == o.\x0a\x09self assert: o == o yourself",
2628
+ messageSends: ["new", "deny:", "==", "assert:", "yourself"],
2629
+ referencedClasses: ["Object"]
2630
+ }),
2631
+ smalltalk.ObjectTest);
2632
+
2633
+ smalltalk.addMethod(
2634
+ "_testIfNil",
2635
+ smalltalk.method({
2636
+ selector: "testIfNil",
2637
+ category: 'tests',
2638
+ fn: function (){
2639
+ var self=this;
2640
+ var $2,$1,$4,$3,$6,$5;
2641
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send((smalltalk.Object || Object),"_new",[]),"_isNil",[])]);
2642
+ $2=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2643
+ if(($receiver = $2) == nil || $receiver == undefined){
2644
+ $1=true;
2645
+ } else {
2646
+ $1=$2;
2647
+ };
2648
+ smalltalk.send(self,"_deny_",[smalltalk.send($1,"__eq",[true])]);
2649
+ $4=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2650
+ if(($receiver = $4) == nil || $receiver == undefined){
2651
+ $3=$4;
2652
+ } else {
2653
+ $3=true;
2654
+ };
2655
+ smalltalk.send(self,"_assert_",[smalltalk.send($3,"__eq",[true])]);
2656
+ $6=smalltalk.send((smalltalk.Object || Object),"_new",[]);
2657
+ if(($receiver = $6) == nil || $receiver == undefined){
2658
+ $5=false;
2659
+ } else {
2660
+ $5=true;
2661
+ };
2662
+ smalltalk.send(self,"_assert_",[smalltalk.send($5,"__eq",[true])]);
2663
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Object || Object),"_new",[]),"_ifNotNil_ifNil_",[(function(){
2664
+ return true;
2665
+ }),(function(){
2666
+ return false;
2667
+ })]),"__eq",[true])]);
2668
+ return self},
2669
+ args: [],
2670
+ source: "testIfNil\x0a\x09self deny: Object new isNil.\x0a\x09self deny: (Object new ifNil: [true]) = true.\x0a\x09self assert: (Object new ifNotNil: [true]) = true.\x0a\x0a\x09self assert: (Object new ifNil: [false] ifNotNil: [true]) = true.\x0a\x09self assert: (Object new ifNotNil: [true] ifNil: [false]) = true",
2671
+ messageSends: ["deny:", "isNil", "new", "=", "ifNil:", "assert:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil:"],
2672
+ referencedClasses: ["Object"]
2673
+ }),
2674
+ smalltalk.ObjectTest);
2675
+
2676
+ smalltalk.addMethod(
2677
+ "_testInstVars",
2678
+ smalltalk.method({
2679
+ selector: "testInstVars",
2680
+ category: 'tests',
2681
+ fn: function (){
2682
+ var self=this;
2683
+ var o;
2684
+ o=smalltalk.send((smalltalk.ObjectMock || ObjectMock),"_new",[]);
2685
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_instVarAt_",[smalltalk.symbolFor("foo")]),nil]);
2686
+ smalltalk.send(o,"_instVarAt_put_",[smalltalk.symbolFor("foo"),(1)]);
2687
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_instVarAt_",[smalltalk.symbolFor("foo")]),(1)]);
2688
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(o,"_instVarAt_",["foo"]),(1)]);
2689
+ return self},
2690
+ args: [],
2691
+ source: "testInstVars\x0a\x09| o |\x0a\x09o := ObjectMock new.\x0a\x09self assert: (o instVarAt: #foo) equals: nil.\x0a\x0a\x09o instVarAt: #foo put: 1.\x0a\x09self assert: (o instVarAt: #foo) equals: 1.\x0a\x09self assert: (o instVarAt: 'foo') equals: 1",
2692
+ messageSends: ["new", "assert:equals:", "instVarAt:", "instVarAt:put:"],
2693
+ referencedClasses: ["ObjectMock"]
2694
+ }),
2695
+ smalltalk.ObjectTest);
2696
+
2697
+ smalltalk.addMethod(
2698
+ "_testNilUndefined",
2699
+ smalltalk.method({
2700
+ selector: "testNilUndefined",
2701
+ category: 'tests',
2702
+ fn: function (){
2703
+ var self=this;
2704
+ var notDefined;
2705
+ notDefined = undefined;
2706
+ ;
2707
+ smalltalk.send(self,"_assert_",[smalltalk.send(nil,"__eq",[notDefined])]);
2708
+ return self},
2709
+ args: [],
2710
+ source: "testNilUndefined\x0a\x09\x22nil in Smalltalk is the undefined object in JS\x22\x0a\x0a\x09| notDefined |\x0a \x0a <notDefined = undefined>.\x0a\x0a\x09self assert: nil = notDefined",
2711
+ messageSends: ["assert:", "="],
2712
+ referencedClasses: []
2713
+ }),
2714
+ smalltalk.ObjectTest);
2715
+
2716
+ smalltalk.addMethod(
2717
+ "_testYourself",
2718
+ smalltalk.method({
2719
+ selector: "testYourself",
2720
+ category: 'tests',
2721
+ fn: function () {
2722
+ var self = this;
2723
+ var o;
2724
+ o = smalltalk.send(smalltalk.ObjectMock || ObjectMock, "_new", []);
2725
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq_eq", [o])]);
2726
+ return self;
2727
+ },
2728
+ args: [],
2729
+ source: "testYourself\x0a\x09| o |\x0a\x09o := ObjectMock new.\x0a\x09self assert: o yourself == o",
2730
+ messageSends: ["new", "assert:", "==", "yourself"],
2731
+ referencedClasses: ["ObjectMock"]
2732
+ }),
2733
+ smalltalk.ObjectTest);
2734
+
2735
+ smalltalk.addMethod(
2736
+ "_testidentityHash",
2737
+ smalltalk.method({
2738
+ selector: "testidentityHash",
2739
+ category: 'tests',
2740
+ fn: function () {
2741
+ var self = this;
2742
+ var o1;
2743
+ var o2;
2744
+ o1 = smalltalk.send(smalltalk.Object || Object, "_new", []);
2745
+ o2 = smalltalk.send(smalltalk.Object || Object, "_new", []);
2746
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o1, "_identityHash", [])])]);
2747
+ smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o2, "_identityHash", [])])]);
2748
+ return self;
2749
+ },
2750
+ args: [],
2751
+ source: "testidentityHash\x0a\x09| o1 o2 |\x0a\x09\x0a\x09o1 := Object new.\x0a\x09o2 := Object new.\x0a\x0a\x09self assert: o1 identityHash == o1 identityHash.\x0a\x09self deny: o1 identityHash == o2 identityHash",
2752
+ messageSends: ["new", "assert:", "==", "identityHash", "deny:"],
2753
+ referencedClasses: ["Object"]
2754
+ }),
2755
+ smalltalk.ObjectTest);
2756
+
2757
+
2758
+
2759
+ smalltalk.addClass('PackageTest', smalltalk.TestCase, ['zorkPackage', 'grulPackage', 'backUpCommitPathJs', 'backUpCommitPathSt'], 'Kernel-Tests');
2760
+ smalltalk.addMethod(
2761
+ "_setUp",
2762
+ smalltalk.method({
2763
+ selector: "setUp",
2764
+ category: 'running',
2765
+ fn: function (){
2766
+ var self=this;
2767
+ var $1,$2;
2768
+ self["@backUpCommitPathJs"]=smalltalk.send((smalltalk.Package || Package),"_defaultCommitPathJs",[]);
2769
+ self["@backUpCommitPathSt"]=smalltalk.send((smalltalk.Package || Package),"_defaultCommitPathSt",[]);
2770
+ smalltalk.send((smalltalk.Package || Package),"_resetCommitPaths",[]);
2771
+ self["@zorkPackage"]=smalltalk.send(smalltalk.send((smalltalk.Package || Package),"_new",[]),"_name_",["Zork"]);
2772
+ $1=smalltalk.send((smalltalk.Package || Package),"_new",[]);
2773
+ smalltalk.send($1,"_name_",["Grul"]);
2774
+ smalltalk.send($1,"_commitPathJs_",["server/grul/js"]);
2775
+ smalltalk.send($1,"_commitPathSt_",["grul/st"]);
2776
+ $2=smalltalk.send($1,"_yourself",[]);
2777
+ self["@grulPackage"]=$2;
2778
+ return self},
2779
+ args: [],
2780
+ source: "setUp\x0a\x09backUpCommitPathJs := Package defaultCommitPathJs.\x0a\x09backUpCommitPathSt := Package defaultCommitPathSt.\x0a\x0a\x09Package resetCommitPaths.\x0a\x0a\x09zorkPackage := Package new name: 'Zork'.\x0a\x09grulPackage := Package new \x0a\x09\x09\x09\x09\x09name: 'Grul';\x0a\x09\x09\x09\x09\x09commitPathJs: 'server/grul/js';\x0a\x09\x09\x09\x09\x09commitPathSt: 'grul/st';\x0a\x09\x09\x09\x09\x09yourself",
2781
+ messageSends: ["defaultCommitPathJs", "defaultCommitPathSt", "resetCommitPaths", "name:", "new", "commitPathJs:", "commitPathSt:", "yourself"],
2782
+ referencedClasses: ["Package"]
2783
+ }),
2784
+ smalltalk.PackageTest);
2785
+
2786
+ smalltalk.addMethod(
2787
+ "_tearDown",
2788
+ smalltalk.method({
2789
+ selector: "tearDown",
2790
+ category: 'running',
2791
+ fn: function (){
2792
+ var self=this;
2793
+ var $1;
2794
+ smalltalk.send((smalltalk.Package || Package),"_defaultCommitPathJs_",[self["@backUpCommitPathJs"]]);
2795
+ $1=smalltalk.send((smalltalk.Package || Package),"_defaultCommitPathSt_",[self["@backUpCommitPathSt"]]);
2796
+ return self},
1687
2797
  args: [],
1688
- source: "testAddRemove\x0a\x09self should: ['hello' add: 'a'] raise: Error.\x0a\x09self should: ['hello' remove: 'h'] raise: Error",
1689
- messageSends: ["should:raise:", "add:", "remove:"],
1690
- referencedClasses: ["Error"]
2798
+ source: "tearDown\x0a\x09 Package \x0a\x09\x09defaultCommitPathJs: backUpCommitPathJs;\x0a\x09\x09defaultCommitPathSt: backUpCommitPathSt",
2799
+ messageSends: ["defaultCommitPathJs:", "defaultCommitPathSt:"],
2800
+ referencedClasses: ["Package"]
1691
2801
  }),
1692
- smalltalk.StringTest);
2802
+ smalltalk.PackageTest);
1693
2803
 
1694
2804
  smalltalk.addMethod(
1695
- "_testAsArray",
2805
+ "_testGrulCommitPathJsShouldBeServerGrulJs",
1696
2806
  smalltalk.method({
1697
- selector: "testAsArray",
2807
+ selector: "testGrulCommitPathJsShouldBeServerGrulJs",
1698
2808
  category: 'tests',
1699
2809
  fn: function (){
1700
2810
  var self=this;
1701
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_asArray", []), "__eq", [["h", "e", "l", "l", "o"]])]);
1702
- return self;},
2811
+ smalltalk.send(self,"_assert_equals_",["server/grul/js",smalltalk.send(self["@grulPackage"],"_commitPathJs",[])]);
2812
+ return self},
1703
2813
  args: [],
1704
- source: "testAsArray\x0a\x09self assert: 'hello' asArray = #('h' 'e' 'l' 'l' 'o').",
1705
- messageSends: ["assert:", "=", "asArray"],
2814
+ source: "testGrulCommitPathJsShouldBeServerGrulJs\x0a\x09self assert: 'server/grul/js' equals: grulPackage commitPathJs",
2815
+ messageSends: ["assert:equals:", "commitPathJs"],
1706
2816
  referencedClasses: []
1707
2817
  }),
1708
- smalltalk.StringTest);
2818
+ smalltalk.PackageTest);
1709
2819
 
1710
2820
  smalltalk.addMethod(
1711
- "_testAt",
2821
+ "_testGrulCommitPathStShouldBeGrulSt",
1712
2822
  smalltalk.method({
1713
- selector: "testAt",
2823
+ selector: "testGrulCommitPathStShouldBeGrulSt",
1714
2824
  category: 'tests',
1715
2825
  fn: function (){
1716
2826
  var self=this;
1717
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_at_", [(1)]), "__eq", ["h"])]);
1718
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_at_", [(5)]), "__eq", ["o"])]);
1719
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_at_ifAbsent_", [(6), (function(){return nil;})]), "__eq", [nil])]);
1720
- return self;},
2827
+ smalltalk.send(self,"_assert_equals_",["grul/st",smalltalk.send(self["@grulPackage"],"_commitPathSt",[])]);
2828
+ return self},
1721
2829
  args: [],
1722
- source: "testAt\x0a\x09self assert: ('hello' at: 1) = 'h'.\x0a\x09self assert: ('hello' at: 5) = 'o'.\x0a\x09self assert: ('hello' at: 6 ifAbsent: [nil]) = nil",
1723
- messageSends: ["assert:", "=", "at:", "at:ifAbsent:"],
2830
+ source: "testGrulCommitPathStShouldBeGrulSt\x0a\x09self assert: 'grul/st' equals: grulPackage commitPathSt",
2831
+ messageSends: ["assert:equals:", "commitPathSt"],
1724
2832
  referencedClasses: []
1725
2833
  }),
1726
- smalltalk.StringTest);
2834
+ smalltalk.PackageTest);
1727
2835
 
1728
2836
  smalltalk.addMethod(
1729
- "_testAtPut",
2837
+ "_testZorkCommitPathJsShouldBeJs",
1730
2838
  smalltalk.method({
1731
- selector: "testAtPut",
2839
+ selector: "testZorkCommitPathJsShouldBeJs",
1732
2840
  category: 'tests',
1733
2841
  fn: function (){
1734
2842
  var self=this;
1735
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send("hello", "_at_put_", [(1), "a"]);}), (smalltalk.Error || Error)]);
1736
- return self;},
2843
+ smalltalk.send(self,"_assert_equals_",["js",smalltalk.send(self["@zorkPackage"],"_commitPathJs",[])]);
2844
+ return self},
1737
2845
  args: [],
1738
- source: "testAtPut\x0a\x09\x22String instances are read-only\x22\x0a\x09self should: ['hello' at: 1 put: 'a'] raise: Error",
1739
- messageSends: ["should:raise:", "at:put:"],
1740
- referencedClasses: ["Error"]
2846
+ source: "testZorkCommitPathJsShouldBeJs\x0a\x09self assert: 'js' equals: zorkPackage commitPathJs",
2847
+ messageSends: ["assert:equals:", "commitPathJs"],
2848
+ referencedClasses: []
1741
2849
  }),
1742
- smalltalk.StringTest);
2850
+ smalltalk.PackageTest);
1743
2851
 
1744
2852
  smalltalk.addMethod(
1745
- "_testCopyWithoutAll",
2853
+ "_testZorkCommitPathStShouldBeSt",
1746
2854
  smalltalk.method({
1747
- selector: "testCopyWithoutAll",
2855
+ selector: "testZorkCommitPathStShouldBeSt",
1748
2856
  category: 'tests',
1749
2857
  fn: function (){
1750
2858
  var self=this;
1751
- smalltalk.send(self, "_assert_equals_", ["hello world", smalltalk.send("*hello* *world*", "_copyWithoutAll_", ["*"])]);
1752
- return self;},
2859
+ smalltalk.send(self,"_assert_equals_",["st",smalltalk.send(self["@zorkPackage"],"_commitPathSt",[])]);
2860
+ return self},
1753
2861
  args: [],
1754
- source: "testCopyWithoutAll\x0a\x09self \x0a\x09\x09assert: 'hello world' \x0a\x09\x09equals: ('*hello* *world*' copyWithoutAll: '*')",
1755
- messageSends: ["assert:equals:", "copyWithoutAll:"],
2862
+ source: "testZorkCommitPathStShouldBeSt\x0a\x09self assert: 'st' equals: zorkPackage commitPathSt",
2863
+ messageSends: ["assert:equals:", "commitPathSt"],
1756
2864
  referencedClasses: []
1757
2865
  }),
1758
- smalltalk.StringTest);
2866
+ smalltalk.PackageTest);
1759
2867
 
2868
+
2869
+
2870
+ smalltalk.addClass('PackageWithDefaultCommitPathChangedTest', smalltalk.PackageTest, [], 'Kernel-Tests');
1760
2871
  smalltalk.addMethod(
1761
- "_testEquality",
2872
+ "_setUp",
1762
2873
  smalltalk.method({
1763
- selector: "testEquality",
1764
- category: 'tests',
2874
+ selector: "setUp",
2875
+ category: 'running',
1765
2876
  fn: function (){
1766
2877
  var self=this;
1767
- smalltalk.send(self, "_assert_", [smalltalk.send("hello", "__eq", ["hello"])]);
1768
- smalltalk.send(self, "_deny_", [smalltalk.send("hello", "__eq", ["world"])]);
1769
- smalltalk.send(self, "_assert_", [smalltalk.send("hello", "__eq", [smalltalk.send("hello", "_yourself", [])])]);
1770
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_yourself", []), "__eq", ["hello"])]);
1771
- smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq", [(0)])]);
1772
- return self;},
2878
+ var $1;
2879
+ smalltalk.send(self,"_setUp",[],smalltalk.PackageTest);
2880
+ smalltalk.send((smalltalk.Package || Package),"_defaultCommitPathJs_",["javascripts/"]);
2881
+ $1=smalltalk.send((smalltalk.Package || Package),"_defaultCommitPathSt_",["smalltalk/"]);
2882
+ return self},
1773
2883
  args: [],
1774
- source: "testEquality\x0a\x09self assert: 'hello' = 'hello'.\x0a\x09self deny: 'hello' = 'world'.\x0a\x0a\x09self assert: 'hello' = 'hello' yourself.\x0a\x09self assert: 'hello' yourself = 'hello'.\x0a\x0a\x09\x22test JS falsy value\x22\x0a\x09self deny: '' = 0",
1775
- messageSends: ["assert:", "=", "deny:", "yourself"],
1776
- referencedClasses: []
2884
+ source: "setUp\x0a\x09super setUp.\x0a\x0a\x09Package\x0a\x09\x09defaultCommitPathJs: 'javascripts/';\x0a\x09\x09defaultCommitPathSt: 'smalltalk/'.",
2885
+ messageSends: ["setUp", "defaultCommitPathJs:", "defaultCommitPathSt:"],
2886
+ referencedClasses: ["Package"]
1777
2887
  }),
1778
- smalltalk.StringTest);
2888
+ smalltalk.PackageWithDefaultCommitPathChangedTest);
1779
2889
 
1780
2890
  smalltalk.addMethod(
1781
- "_testIdentity",
2891
+ "_testGrulCommitPathJsShouldBeServerGrulJs",
1782
2892
  smalltalk.method({
1783
- selector: "testIdentity",
2893
+ selector: "testGrulCommitPathJsShouldBeServerGrulJs",
1784
2894
  category: 'tests',
1785
2895
  fn: function (){
1786
2896
  var self=this;
1787
- smalltalk.send(self, "_assert_", [smalltalk.send("hello", "__eq_eq", ["hello"])]);
1788
- smalltalk.send(self, "_deny_", [smalltalk.send("hello", "__eq_eq", ["world"])]);
1789
- smalltalk.send(self, "_assert_", [smalltalk.send("hello", "__eq_eq", [smalltalk.send("hello", "_yourself", [])])]);
1790
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send("hello", "_yourself", []), "__eq_eq", ["hello"])]);
1791
- smalltalk.send(self, "_deny_", [smalltalk.send("", "__eq_eq", [(0)])]);
1792
- return self;},
2897
+ smalltalk.send(self,"_assert_equals_",["server/grul/js",smalltalk.send(self["@grulPackage"],"_commitPathJs",[])]);
2898
+ return self},
1793
2899
  args: [],
1794
- source: "testIdentity\x0a\x09self assert: 'hello' == 'hello'.\x0a\x09self deny: 'hello' == 'world'.\x0a\x0a\x09self assert: 'hello' == 'hello' yourself.\x0a\x09self assert: 'hello' yourself == 'hello'.\x0a\x0a\x09\x22test JS falsy value\x22\x0a\x09self deny: '' == 0",
1795
- messageSends: ["assert:", "==", "deny:", "yourself"],
2900
+ source: "testGrulCommitPathJsShouldBeServerGrulJs\x0a\x09self assert: 'server/grul/js' equals: grulPackage commitPathJs",
2901
+ messageSends: ["assert:equals:", "commitPathJs"],
1796
2902
  referencedClasses: []
1797
2903
  }),
1798
- smalltalk.StringTest);
2904
+ smalltalk.PackageWithDefaultCommitPathChangedTest);
1799
2905
 
1800
2906
  smalltalk.addMethod(
1801
- "_testIncludesSubString",
2907
+ "_testGrulCommitPathStShouldBeGrulSt",
1802
2908
  smalltalk.method({
1803
- selector: "testIncludesSubString",
2909
+ selector: "testGrulCommitPathStShouldBeGrulSt",
1804
2910
  category: 'tests',
1805
2911
  fn: function (){
1806
2912
  var self=this;
1807
- smalltalk.send(self, "_assert_", [smalltalk.send("amber", "_includesSubString_", ["ber"])]);
1808
- smalltalk.send(self, "_deny_", [smalltalk.send("amber", "_includesSubString_", ["zork"])]);
1809
- return self;},
2913
+ smalltalk.send(self,"_assert_equals_",["grul/st",smalltalk.send(self["@grulPackage"],"_commitPathSt",[])]);
2914
+ return self},
1810
2915
  args: [],
1811
- source: "testIncludesSubString\x0a\x09self assert: ('amber' includesSubString: 'ber').\x0a\x09self deny: ('amber' includesSubString: 'zork').",
1812
- messageSends: ["assert:", "includesSubString:", "deny:"],
2916
+ source: "testGrulCommitPathStShouldBeGrulSt\x0a\x09self assert: 'grul/st' equals: grulPackage commitPathSt",
2917
+ messageSends: ["assert:equals:", "commitPathSt"],
1813
2918
  referencedClasses: []
1814
2919
  }),
1815
- smalltalk.StringTest);
2920
+ smalltalk.PackageWithDefaultCommitPathChangedTest);
1816
2921
 
1817
2922
  smalltalk.addMethod(
1818
- "_testJoin",
2923
+ "_testZorkCommitPathJsShouldBeJavascript",
1819
2924
  smalltalk.method({
1820
- selector: "testJoin",
2925
+ selector: "testZorkCommitPathJsShouldBeJavascript",
1821
2926
  category: 'tests',
1822
2927
  fn: function (){
1823
2928
  var self=this;
1824
- smalltalk.send(self, "_assert_equals_", ["hello,world", smalltalk.send(",", "_join_", [["hello", "world"]])]);
1825
- return self;},
2929
+ smalltalk.send(self,"_assert_equals_",["javascripts/",smalltalk.send(self["@zorkPackage"],"_commitPathJs",[])]);
2930
+ return self},
1826
2931
  args: [],
1827
- source: "testJoin\x0a\x09self assert: 'hello,world' equals: (',' join: #('hello' 'world'))",
1828
- messageSends: ["assert:equals:", "join:"],
2932
+ source: "testZorkCommitPathJsShouldBeJavascript\x0a\x09self assert: 'javascripts/' equals: zorkPackage commitPathJs",
2933
+ messageSends: ["assert:equals:", "commitPathJs"],
1829
2934
  referencedClasses: []
1830
2935
  }),
1831
- smalltalk.StringTest);
2936
+ smalltalk.PackageWithDefaultCommitPathChangedTest);
1832
2937
 
1833
2938
  smalltalk.addMethod(
1834
- "_testSize",
2939
+ "_testZorkCommitPathStShouldBeSmalltalk",
1835
2940
  smalltalk.method({
1836
- selector: "testSize",
2941
+ selector: "testZorkCommitPathStShouldBeSmalltalk",
1837
2942
  category: 'tests',
1838
2943
  fn: function (){
1839
2944
  var self=this;
1840
- smalltalk.send(self, "_assert_equals_", [smalltalk.send("smalltalk", "_size", []), (9)]);
1841
- smalltalk.send(self, "_assert_equals_", [smalltalk.send("", "_size", []), (0)]);
1842
- return self;},
2945
+ smalltalk.send(self,"_assert_equals_",["smalltalk/",smalltalk.send(self["@zorkPackage"],"_commitPathSt",[])]);
2946
+ return self},
1843
2947
  args: [],
1844
- source: "testSize\x0a\x09self assert: 'smalltalk' size equals: 9.\x0a\x09self assert: '' size equals: 0",
1845
- messageSends: ["assert:equals:", "size"],
2948
+ source: "testZorkCommitPathStShouldBeSmalltalk\x0a\x09self assert: 'smalltalk/' equals: zorkPackage commitPathSt",
2949
+ messageSends: ["assert:equals:", "commitPathSt"],
1846
2950
  referencedClasses: []
1847
2951
  }),
1848
- smalltalk.StringTest);
2952
+ smalltalk.PackageWithDefaultCommitPathChangedTest);
2953
+
1849
2954
 
1850
2955
  smalltalk.addMethod(
1851
- "_testStreamContents",
2956
+ "_shouldInheritSelectors",
1852
2957
  smalltalk.method({
1853
- selector: "testStreamContents",
1854
- category: 'tests',
2958
+ selector: "shouldInheritSelectors",
2959
+ category: 'accessing',
1855
2960
  fn: function (){
1856
2961
  var self=this;
1857
- 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);})])]);
1858
- return self;},
2962
+ return false;
2963
+ },
1859
2964
  args: [],
1860
- source: "testStreamContents\x0a\x09self \x0a\x09\x09assert: 'hello world' \x0a\x09\x09equals: (String streamContents: [:aStream| aStream \x0a \x09\x09\x09\x09\x09nextPutAll: 'hello'; space; \x0a \x09\x09\x09\x09\x09nextPutAll: 'world'])",
1861
- messageSends: ["assert:equals:", "streamContents:", "nextPutAll:", "space"],
1862
- referencedClasses: ["String"]
2965
+ source: "shouldInheritSelectors\x0a\x09^ false",
2966
+ messageSends: [],
2967
+ referencedClasses: []
1863
2968
  }),
1864
- smalltalk.StringTest);
1865
-
2969
+ smalltalk.PackageWithDefaultCommitPathChangedTest.klass);
1866
2970
 
1867
2971
 
1868
- smalltalk.addClass('SymbolTest', smalltalk.TestCase, [], 'Kernel-Tests');
2972
+ smalltalk.addClass('PointTest', smalltalk.TestCase, [], 'Kernel-Tests');
1869
2973
  smalltalk.addMethod(
1870
- "_testAsString",
2974
+ "_testAccessing",
1871
2975
  smalltalk.method({
1872
- selector: "testAsString",
2976
+ selector: "testAccessing",
1873
2977
  category: 'tests',
1874
2978
  fn: function (){
1875
2979
  var self=this;
1876
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.symbolFor("hello"), "_asString", []), "hello"]);
1877
- return self;},
2980
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((smalltalk.Point || Point),"_x_y_",[(3),(4)]),"_x",[]),(3)]);
2981
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((smalltalk.Point || Point),"_x_y_",[(3),(4)]),"_y",[]),(4)]);
2982
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Point || Point),"_new",[]),"_x_",[(3)]),"_x",[]),(3)]);
2983
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Point || Point),"_new",[]),"_y_",[(4)]),"_y",[]),(4)]);
2984
+ return self},
1878
2985
  args: [],
1879
- source: "testAsString\x0a\x09self assert: #hello asString equals: 'hello'",
1880
- messageSends: ["assert:equals:", "asString"],
1881
- referencedClasses: []
2986
+ source: "testAccessing\x0a\x09self assert: (Point x: 3 y: 4) x equals: 3.\x0a\x09self assert: (Point x: 3 y: 4) y equals: 4.\x0a\x09self assert: (Point new x: 3) x equals: 3.\x0a\x09self assert: (Point new y: 4) y equals: 4",
2987
+ messageSends: ["assert:equals:", "x", "x:y:", "y", "x:", "new", "y:"],
2988
+ referencedClasses: ["Point"]
1882
2989
  }),
1883
- smalltalk.SymbolTest);
2990
+ smalltalk.PointTest);
1884
2991
 
1885
2992
  smalltalk.addMethod(
1886
- "_testAsSymbol",
2993
+ "_testArithmetic",
1887
2994
  smalltalk.method({
1888
- selector: "testAsSymbol",
2995
+ selector: "testArithmetic",
1889
2996
  category: 'tests',
1890
2997
  fn: function (){
1891
2998
  var self=this;
1892
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq_eq", [smalltalk.send(smalltalk.symbolFor("hello"), "_asSymbol", [])])]);
1893
- return self;},
2999
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((3),"__at",[(4)]),"__star",[smalltalk.send((3),"__at",[(4)])]),smalltalk.send((smalltalk.Point || Point),"_x_y_",[(9),(16)])]);
3000
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((3),"__at",[(4)]),"__plus",[smalltalk.send((3),"__at",[(4)])]),smalltalk.send((smalltalk.Point || Point),"_x_y_",[(6),(8)])]);
3001
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((3),"__at",[(4)]),"__minus",[smalltalk.send((3),"__at",[(4)])]),smalltalk.send((smalltalk.Point || Point),"_x_y_",[(0),(0)])]);
3002
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((6),"__at",[(8)]),"__slash",[smalltalk.send((3),"__at",[(4)])]),smalltalk.send((smalltalk.Point || Point),"_x_y_",[(2),(2)])]);
3003
+ return self},
1894
3004
  args: [],
1895
- source: "testAsSymbol\x0a\x09self assert: #hello == #hello asSymbol",
1896
- messageSends: ["assert:", "==", "asSymbol"],
1897
- referencedClasses: []
3005
+ source: "testArithmetic\x0a\x09self assert: 3@4 * (3@4 ) equals: (Point x: 9 y: 16).\x0a\x09self assert: 3@4 + (3@4 ) equals: (Point x: 6 y: 8).\x0a\x09self assert: 3@4 - (3@4 ) equals: (Point x: 0 y: 0).\x0a\x09self assert: 6@8 / (3@4 ) equals: (Point x: 2 y: 2)",
3006
+ messageSends: ["assert:equals:", "*", "@", "x:y:", "+", "-", "/"],
3007
+ referencedClasses: ["Point"]
1898
3008
  }),
1899
- smalltalk.SymbolTest);
3009
+ smalltalk.PointTest);
1900
3010
 
1901
3011
  smalltalk.addMethod(
1902
3012
  "_testAt",
@@ -1905,131 +3015,154 @@ selector: "testAt",
1905
3015
  category: 'tests',
1906
3016
  fn: function (){
1907
3017
  var self=this;
1908
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_at_", [(1)]), "__eq", ["h"])]);
1909
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_at_", [(5)]), "__eq", ["o"])]);
1910
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_at_ifAbsent_", [(6), (function(){return nil;})]), "__eq", [nil])]);
1911
- return self;},
3018
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((3),"__at",[(4)]),smalltalk.send((smalltalk.Point || Point),"_x_y_",[(3),(4)])]);
3019
+ return self},
1912
3020
  args: [],
1913
- source: "testAt\x0a\x09self assert: (#hello at: 1) = 'h'.\x0a\x09self assert: (#hello at: 5) = 'o'.\x0a\x09self assert: (#hello at: 6 ifAbsent: [nil]) = nil",
1914
- messageSends: ["assert:", "=", "at:", "at:ifAbsent:"],
1915
- referencedClasses: []
3021
+ source: "testAt\x0a\x09self assert: 3@4 equals: (Point x: 3 y: 4)",
3022
+ messageSends: ["assert:equals:", "@", "x:y:"],
3023
+ referencedClasses: ["Point"]
1916
3024
  }),
1917
- smalltalk.SymbolTest);
3025
+ smalltalk.PointTest);
1918
3026
 
1919
3027
  smalltalk.addMethod(
1920
- "_testAtPut",
3028
+ "_testEgality",
1921
3029
  smalltalk.method({
1922
- selector: "testAtPut",
3030
+ selector: "testEgality",
1923
3031
  category: 'tests',
1924
3032
  fn: function (){
1925
3033
  var self=this;
1926
- smalltalk.send(self, "_should_raise_", [(function(){return smalltalk.send("hello", "_at_put_", [(1), "a"]);}), (smalltalk.Error || Error)]);
1927
- return self;},
3034
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send((3),"__at",[(4)]),"__eq",[smalltalk.send((3),"__at",[(4)])])]);
3035
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send((3),"__at",[(5)]),"__eq",[smalltalk.send((3),"__at",[(6)])])]);
3036
+ return self},
1928
3037
  args: [],
1929
- source: "testAtPut\x0a\x09\x22Symbol instances are read-only\x22\x0a\x09self should: ['hello' at: 1 put: 'a'] raise: Error",
1930
- messageSends: ["should:raise:", "at:put:"],
1931
- referencedClasses: ["Error"]
3038
+ source: "testEgality\x0a\x09self assert: 3@4 = (3@4).\x0a\x09self deny: 3@5 = (3@6)",
3039
+ messageSends: ["assert:", "=", "@", "deny:"],
3040
+ referencedClasses: []
1932
3041
  }),
1933
- smalltalk.SymbolTest);
3042
+ smalltalk.PointTest);
1934
3043
 
1935
3044
  smalltalk.addMethod(
1936
- "_testComparing",
3045
+ "_testTranslateBy",
1937
3046
  smalltalk.method({
1938
- selector: "testComparing",
3047
+ selector: "testTranslateBy",
1939
3048
  category: 'tests',
1940
3049
  fn: function (){
1941
3050
  var self=this;
1942
- smalltalk.send(self, "_assert_", [((($receiver = smalltalk.symbolFor("ab")).klass === smalltalk.Number) ? $receiver >smalltalk.symbolFor("aa") : smalltalk.send($receiver, "__gt", [smalltalk.symbolFor("aa")]))]);
1943
- smalltalk.send(self, "_deny_", [((($receiver = smalltalk.symbolFor("ab")).klass === smalltalk.Number) ? $receiver >smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__gt", [smalltalk.symbolFor("ba")]))]);
1944
- smalltalk.send(self, "_assert_", [((($receiver = smalltalk.symbolFor("ab")).klass === smalltalk.Number) ? $receiver <smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__lt", [smalltalk.symbolFor("ba")]))]);
1945
- smalltalk.send(self, "_deny_", [((($receiver = smalltalk.symbolFor("bb")).klass === smalltalk.Number) ? $receiver <smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__lt", [smalltalk.symbolFor("ba")]))]);
1946
- smalltalk.send(self, "_assert_", [((($receiver = smalltalk.symbolFor("ab")).klass === smalltalk.Number) ? $receiver >=smalltalk.symbolFor("aa") : smalltalk.send($receiver, "__gt_eq", [smalltalk.symbolFor("aa")]))]);
1947
- smalltalk.send(self, "_deny_", [((($receiver = smalltalk.symbolFor("ab")).klass === smalltalk.Number) ? $receiver >=smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__gt_eq", [smalltalk.symbolFor("ba")]))]);
1948
- smalltalk.send(self, "_assert_", [((($receiver = smalltalk.symbolFor("ab")).klass === smalltalk.Number) ? $receiver <=smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__lt_eq", [smalltalk.symbolFor("ba")]))]);
1949
- smalltalk.send(self, "_deny_", [((($receiver = smalltalk.symbolFor("bb")).klass === smalltalk.Number) ? $receiver <=smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__lt_eq", [smalltalk.symbolFor("ba")]))]);
1950
- return self;},
3051
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((3),"__at",[(4)]),smalltalk.send(smalltalk.send((3),"__at",[(3)]),"_translateBy_",[smalltalk.send((0),"__at",[(1)])])]);
3052
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((3),"__at",[(2)]),smalltalk.send(smalltalk.send((3),"__at",[(3)]),"_translateBy_",[smalltalk.send((0),"__at",[smalltalk.send((1),"_negated",[])])])]);
3053
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((5),"__at",[(6)]),smalltalk.send(smalltalk.send((3),"__at",[(3)]),"_translateBy_",[smalltalk.send((2),"__at",[(3)])])]);
3054
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send((0),"__at",[(3)]),smalltalk.send(smalltalk.send((3),"__at",[(3)]),"_translateBy_",[smalltalk.send(smalltalk.send((3),"_negated",[]),"__at",[(0)])])]);
3055
+ return self},
1951
3056
  args: [],
1952
- source: "testComparing\x0a\x09self assert: #ab > #aa.\x0a\x09self deny: #ab > #ba.\x0a\x0a\x09self assert: #ab < #ba.\x0a\x09self deny: #bb < #ba.\x0a\x0a\x09self assert: #ab >= #aa.\x0a\x09self deny: #ab >= #ba.\x0a\x0a\x09self assert: #ab <= #ba.\x0a\x09self deny: #bb <= #ba",
1953
- messageSends: ["assert:", ">", "deny:", "<", ">=", "<="],
3057
+ source: "testTranslateBy\x0a\x09self assert: 3@4 equals: (3@3 translateBy: 0@1).\x0a\x09self assert: 3@2 equals: (3@3 translateBy: 0@1 negated).\x0a\x09self assert: 5@6 equals: (3@3 translateBy: 2@3).\x0a\x09self assert: 0@3 equals: (3@3 translateBy: 3 negated @0).",
3058
+ messageSends: ["assert:equals:", "@", "translateBy:", "negated"],
1954
3059
  referencedClasses: []
1955
3060
  }),
1956
- smalltalk.SymbolTest);
3061
+ smalltalk.PointTest);
1957
3062
 
3063
+
3064
+
3065
+ smalltalk.addClass('RandomTest', smalltalk.TestCase, [], 'Kernel-Tests');
1958
3066
  smalltalk.addMethod(
1959
- "_testCopying",
3067
+ "_textNext",
1960
3068
  smalltalk.method({
1961
- selector: "testCopying",
3069
+ selector: "textNext",
1962
3070
  category: 'tests',
1963
3071
  fn: function (){
1964
3072
  var self=this;
1965
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_copy", []), "__eq_eq", [smalltalk.symbolFor("hello")])]);
1966
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_deepCopy", []), "__eq_eq", [smalltalk.symbolFor("hello")])]);
1967
- return self;},
3073
+ smalltalk.send((10000),"_timesRepeat_",[(function(){
3074
+ var current;
3075
+ var next;
3076
+ next=smalltalk.send(smalltalk.send((smalltalk.Random || Random),"_new",[]),"_next",[]);
3077
+ next;
3078
+ smalltalk.send(self,"_assert_",[smalltalk.send(next,"__gt_eq",[(0)])]);
3079
+ smalltalk.send(self,"_assert_",[smalltalk.send(next,"__lt",[(1)])]);
3080
+ smalltalk.send(self,"_deny_",[smalltalk.send(current,"__eq",[next])]);
3081
+ return smalltalk.send(next,"__eq",[current]);
3082
+ })]);
3083
+ return self},
1968
3084
  args: [],
1969
- source: "testCopying\x0a\x09self assert: #hello copy == #hello.\x0a\x09self assert: #hello deepCopy == #hello",
1970
- messageSends: ["assert:", "==", "copy", "deepCopy"],
1971
- referencedClasses: []
3085
+ source: "textNext\x0a\x0a\x0910000 timesRepeat: [\x0a\x09\x09\x09| current next | \x0a\x09\x09\x09next := Random new next.\x0a\x09\x09\x09self assert: (next >= 0).\x0a\x09\x09\x09self assert: (next < 1).\x0a\x09\x09\x09self deny: current = next.\x0a\x09\x09\x09next = current]",
3086
+ messageSends: ["timesRepeat:", "next", "new", "assert:", ">=", "<", "deny:", "="],
3087
+ referencedClasses: ["Random"]
1972
3088
  }),
1973
- smalltalk.SymbolTest);
3089
+ smalltalk.RandomTest);
3090
+
1974
3091
 
3092
+
3093
+ smalltalk.addClass('SetTest', smalltalk.TestCase, [], 'Kernel-Tests');
1975
3094
  smalltalk.addMethod(
1976
- "_testEquality",
3095
+ "_testAddRemove",
1977
3096
  smalltalk.method({
1978
- selector: "testEquality",
3097
+ selector: "testAddRemove",
1979
3098
  category: 'tests',
1980
3099
  fn: function (){
1981
3100
  var self=this;
1982
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq", [smalltalk.symbolFor("hello")])]);
1983
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq", [smalltalk.symbolFor("world")])]);
1984
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq", [smalltalk.send(smalltalk.symbolFor("hello"), "_yourself", [])])]);
1985
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_yourself", []), "__eq", [smalltalk.symbolFor("hello")])]);
1986
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq", ["hello"])]);
1987
- smalltalk.send(self, "_deny_", [smalltalk.send("hello", "__eq", [smalltalk.symbolFor("hello")])]);
1988
- return self;},
3101
+ var set;
3102
+ set=smalltalk.send((smalltalk.Set || Set),"_new",[]);
3103
+ smalltalk.send(self,"_assert_",[smalltalk.send(set,"_isEmpty",[])]);
3104
+ smalltalk.send(set,"_add_",[(3)]);
3105
+ smalltalk.send(self,"_assert_",[smalltalk.send(set,"_includes_",[(3)])]);
3106
+ smalltalk.send(set,"_add_",[(5)]);
3107
+ smalltalk.send(self,"_assert_",[smalltalk.send(set,"_includes_",[(5)])]);
3108
+ smalltalk.send(set,"_remove_",[(3)]);
3109
+ smalltalk.send(self,"_deny_",[smalltalk.send(set,"_includes_",[(3)])]);
3110
+ return self},
1989
3111
  args: [],
1990
- source: "testEquality\x0a\x09self assert: #hello = #hello.\x0a\x09self deny: #hello = #world.\x0a\x0a\x09self assert: #hello = #hello yourself.\x0a\x09self assert: #hello yourself = #hello.\x0a\x0a\x09self deny: #hello = 'hello'.\x0a\x09self deny: 'hello' = #hello.",
1991
- messageSends: ["assert:", "=", "deny:", "yourself"],
1992
- referencedClasses: []
3112
+ source: "testAddRemove\x0a\x09| set |\x0a\x09set := Set new.\x0a\x09\x0a\x09self assert: set isEmpty.\x0a\x0a\x09set add: 3.\x0a\x09self assert: (set includes: 3).\x0a\x0a\x09set add: 5.\x0a\x09self assert: (set includes: 5).\x0a\x0a\x09set remove: 3.\x0a\x09self deny: (set includes: 3)",
3113
+ messageSends: ["new", "assert:", "isEmpty", "add:", "includes:", "remove:", "deny:"],
3114
+ referencedClasses: ["Set"]
1993
3115
  }),
1994
- smalltalk.SymbolTest);
3116
+ smalltalk.SetTest);
1995
3117
 
1996
3118
  smalltalk.addMethod(
1997
- "_testIdentity",
3119
+ "_testAt",
1998
3120
  smalltalk.method({
1999
- selector: "testIdentity",
3121
+ selector: "testAt",
2000
3122
  category: 'tests',
2001
3123
  fn: function (){
2002
3124
  var self=this;
2003
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq_eq", [smalltalk.symbolFor("hello")])]);
2004
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq_eq", [smalltalk.symbolFor("world")])]);
2005
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.symbolFor("hello"), "__eq", [smalltalk.send(smalltalk.symbolFor("hello"), "_yourself", [])])]);
2006
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_yourself", []), "__eq", [smalltalk.send(smalltalk.send(smalltalk.symbolFor("hello"), "_asString", []), "_asSymbol", [])])]);
2007
- return self;},
3125
+ smalltalk.send(self,"_should_raise_",[(function(){
3126
+ return smalltalk.send(smalltalk.send((smalltalk.Set || Set),"_new",[]),"_at_put_",[(1),(2)]);
3127
+ }),(smalltalk.Error || Error)]);
3128
+ return self},
2008
3129
  args: [],
2009
- source: "testIdentity\x0a\x09self assert: #hello == #hello.\x0a\x09self deny: #hello == #world.\x0a\x0a\x09self assert: #hello = #hello yourself.\x0a\x09self assert: #hello yourself = #hello asString asSymbol",
2010
- messageSends: ["assert:", "==", "deny:", "=", "yourself", "asSymbol", "asString"],
2011
- referencedClasses: []
3130
+ source: "testAt\x0a\x09self should: [Set new at: 1 put: 2] raise: Error",
3131
+ messageSends: ["should:raise:", "at:put:", "new"],
3132
+ referencedClasses: ["Set", "Error"]
2012
3133
  }),
2013
- smalltalk.SymbolTest);
3134
+ smalltalk.SetTest);
2014
3135
 
2015
3136
  smalltalk.addMethod(
2016
- "_testIsSymbolIsString",
3137
+ "_testPrintString",
2017
3138
  smalltalk.method({
2018
- selector: "testIsSymbolIsString",
3139
+ selector: "testPrintString",
2019
3140
  category: 'tests',
2020
3141
  fn: function (){
2021
3142
  var self=this;
2022
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.symbolFor("hello"), "_isSymbol", [])]);
2023
- smalltalk.send(self, "_deny_", [smalltalk.send("hello", "_isSymbol", [])]);
2024
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.symbolFor("hello"), "_isString", [])]);
2025
- smalltalk.send(self, "_assert_", [smalltalk.send("hello", "_isString", [])]);
2026
- return self;},
2027
- args: [],
2028
- source: "testIsSymbolIsString\x0a\x09self assert: #hello isSymbol.\x0a\x09self deny: 'hello' isSymbol.\x0a\x09self deny: #hello isString.\x0a\x09self assert: 'hello' isString",
2029
- messageSends: ["assert:", "isSymbol", "deny:", "isString"],
2030
- referencedClasses: []
3143
+ var $1,$2;
3144
+ var set;
3145
+ set=smalltalk.send((smalltalk.Set || Set),"_new",[]);
3146
+ smalltalk.send(self,"_assert_equals_",["a Set ()",smalltalk.send(set,"_printString",[])]);
3147
+ smalltalk.send(set,"_add_",[(1)]);
3148
+ $1=smalltalk.send(set,"_add_",[(3)]);
3149
+ smalltalk.send(self,"_assert_equals_",["a Set (1 3)",smalltalk.send(set,"_printString",[])]);
3150
+ smalltalk.send(set,"_add_",["foo"]);
3151
+ smalltalk.send(self,"_assert_equals_",["a Set (1 3 'foo')",smalltalk.send(set,"_printString",[])]);
3152
+ smalltalk.send(set,"_remove_",[(1)]);
3153
+ $2=smalltalk.send(set,"_remove_",[(3)]);
3154
+ smalltalk.send(self,"_assert_equals_",["a Set ('foo')",smalltalk.send(set,"_printString",[])]);
3155
+ smalltalk.send(set,"_add_",[(3)]);
3156
+ smalltalk.send(self,"_assert_equals_",["a Set ('foo' 3)",smalltalk.send(set,"_printString",[])]);
3157
+ smalltalk.send(set,"_add_",[(3)]);
3158
+ smalltalk.send(self,"_assert_equals_",["a Set ('foo' 3)",smalltalk.send(set,"_printString",[])]);
3159
+ return self},
3160
+ args: [],
3161
+ source: "testPrintString\x0a\x09| set |\x0a\x09set := Set new.\x0a\x09self assert: 'a Set ()' equals: ( set printString ).\x0a\x09set add: 1; add: 3.\x0a\x09self assert: 'a Set (1 3)' equals: ( set printString ).\x0a\x09set add: 'foo'.\x0a\x09self assert: 'a Set (1 3 ''foo'')' equals: ( set printString ).\x0a\x09set remove: 1; remove: 3.\x0a\x09self assert: 'a Set (''foo'')' equals: ( set printString ).\x0a\x09set add: 3.\x0a\x09self assert: 'a Set (''foo'' 3)' equals: ( set printString ).\x0a\x09set add: 3.\x0a\x09self assert: 'a Set (''foo'' 3)' equals: ( set printString ).",
3162
+ messageSends: ["new", "assert:equals:", "printString", "add:", "remove:"],
3163
+ referencedClasses: ["Set"]
2031
3164
  }),
2032
- smalltalk.SymbolTest);
3165
+ smalltalk.SetTest);
2033
3166
 
2034
3167
  smalltalk.addMethod(
2035
3168
  "_testSize",
@@ -2038,15 +3171,40 @@ selector: "testSize",
2038
3171
  category: 'tests',
2039
3172
  fn: function (){
2040
3173
  var self=this;
2041
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.symbolFor("a"), "_size", []), (1)]);
2042
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(smalltalk.symbolFor("aaaaa"), "_size", []), (5)]);
2043
- return self;},
3174
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((smalltalk.Set || Set),"_new",[]),"_size",[]),(0)]);
3175
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((smalltalk.Set || Set),"_withAll_",[[(1), (2), (3), (4)]]),"_size",[]),(4)]);
3176
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(smalltalk.send((smalltalk.Set || Set),"_withAll_",[[(1), (1), (1), (1)]]),"_size",[]),(1)]);
3177
+ return self},
2044
3178
  args: [],
2045
- source: "testSize\x0a\x09self assert: #a size equals: 1.\x0a\x09self assert: #aaaaa size equals: 5",
2046
- messageSends: ["assert:equals:", "size"],
2047
- referencedClasses: []
3179
+ source: "testSize\x0a\x09self assert: Set new size equals: 0.\x0a\x09self assert: (Set withAll: #(1 2 3 4)) size equals: 4.\x0a\x09self assert: (Set withAll: #(1 1 1 1)) size equals: 1",
3180
+ messageSends: ["assert:equals:", "size", "new", "withAll:"],
3181
+ referencedClasses: ["Set"]
2048
3182
  }),
2049
- smalltalk.SymbolTest);
3183
+ smalltalk.SetTest);
3184
+
3185
+ smalltalk.addMethod(
3186
+ "_testUnicity",
3187
+ smalltalk.method({
3188
+ selector: "testUnicity",
3189
+ category: 'tests',
3190
+ fn: function (){
3191
+ var self=this;
3192
+ var set;
3193
+ set=smalltalk.send((smalltalk.Set || Set),"_new",[]);
3194
+ smalltalk.send(set,"_add_",[(21)]);
3195
+ smalltalk.send(set,"_add_",["hello"]);
3196
+ smalltalk.send(set,"_add_",[(21)]);
3197
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(set,"_size",[]),"__eq",[(2)])]);
3198
+ smalltalk.send(set,"_add_",["hello"]);
3199
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(set,"_size",[]),"__eq",[(2)])]);
3200
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(set,"_asArray",[]),[(21), "hello"]]);
3201
+ return self},
3202
+ args: [],
3203
+ source: "testUnicity\x0a\x09| set |\x0a\x09set := Set new.\x0a\x09set add: 21.\x0a\x09set add: 'hello'.\x0a\x0a\x09set add: 21.\x0a\x09self assert: set size = 2.\x0a\x09\x0a\x09set add: 'hello'.\x0a\x09self assert: set size = 2.\x0a\x0a\x09self assert: set asArray equals: #(21 'hello')",
3204
+ messageSends: ["new", "add:", "assert:", "=", "size", "assert:equals:", "asArray"],
3205
+ referencedClasses: ["Set"]
3206
+ }),
3207
+ smalltalk.SetTest);
2050
3208
 
2051
3209
 
2052
3210
 
@@ -2058,8 +3216,8 @@ selector: "testCopying",
2058
3216
  category: 'tests',
2059
3217
  fn: function (){
2060
3218
  var self=this;
2061
- smalltalk.send(self, "_assert_equals_", [smalltalk.send(nil, "_copy", []), nil]);
2062
- return self;},
3219
+ smalltalk.send(self,"_assert_equals_",[smalltalk.send(nil,"_copy",[]),nil]);
3220
+ return self},
2063
3221
  args: [],
2064
3222
  source: "testCopying\x0a\x09self assert: nil copy equals: nil",
2065
3223
  messageSends: ["assert:equals:", "copy"],
@@ -2074,8 +3232,8 @@ selector: "testDeepCopy",
2074
3232
  category: 'tests',
2075
3233
  fn: function (){
2076
3234
  var self=this;
2077
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(nil, "_deepCopy", []), "__eq", [nil])]);
2078
- return self;},
3235
+ smalltalk.send(self,"_assert_",[smalltalk.send(smalltalk.send(nil,"_deepCopy",[]),"__eq",[nil])]);
3236
+ return self},
2079
3237
  args: [],
2080
3238
  source: "testDeepCopy\x0a\x09self assert: nil deepCopy = nil",
2081
3239
  messageSends: ["assert:", "=", "deepCopy"],
@@ -2090,11 +3248,31 @@ selector: "testIfNil",
2090
3248
  category: 'tests',
2091
3249
  fn: function (){
2092
3250
  var self=this;
2093
- smalltalk.send(self, "_assert_equals_", [(($receiver = nil) == nil || $receiver == undefined) ? (function(){return true;})() : $receiver, true]);
2094
- smalltalk.send(self, "_deny_", [smalltalk.send((($receiver = nil) != nil && $receiver != undefined) ? (function(){return true;})() : nil, "__eq", [true])]);
2095
- smalltalk.send(self, "_assert_equals_", [(($receiver = nil) == nil || $receiver == undefined) ? (function(){return true;})() : (function(){return false;})(), true]);
2096
- smalltalk.send(self, "_deny_", [smalltalk.send((($receiver = nil) == nil || $receiver == undefined) ? (function(){return false;})() : (function(){return true;})(), "__eq", [true])]);
2097
- return self;},
3251
+ var $1,$2,$3;
3252
+ if(($receiver = nil) == nil || $receiver == undefined){
3253
+ $1=true;
3254
+ } else {
3255
+ $1=nil;
3256
+ };
3257
+ smalltalk.send(self,"_assert_equals_",[$1,true]);
3258
+ if(($receiver = nil) == nil || $receiver == undefined){
3259
+ $2=nil;
3260
+ } else {
3261
+ $2=true;
3262
+ };
3263
+ smalltalk.send(self,"_deny_",[smalltalk.send($2,"__eq",[true])]);
3264
+ if(($receiver = nil) == nil || $receiver == undefined){
3265
+ $3=true;
3266
+ } else {
3267
+ $3=false;
3268
+ };
3269
+ smalltalk.send(self,"_assert_equals_",[$3,true]);
3270
+ smalltalk.send(self,"_deny_",[smalltalk.send(smalltalk.send(nil,"_ifNotNil_ifNil_",[(function(){
3271
+ return true;
3272
+ }),(function(){
3273
+ return false;
3274
+ })]),"__eq",[true])]);
3275
+ return self},
2098
3276
  args: [],
2099
3277
  source: "testIfNil\x0a\x09self assert: (nil ifNil: [true]) equals: true.\x0a\x09self deny: (nil ifNotNil: [true]) = true.\x0a\x09self assert: (nil ifNil: [true] ifNotNil: [false]) equals: true.\x0a\x09self deny: (nil ifNotNil: [true] ifNil: [false]) = true",
2100
3278
  messageSends: ["assert:equals:", "ifNil:", "deny:", "=", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil:"],
@@ -2109,9 +3287,9 @@ selector: "testIsNil",
2109
3287
  category: 'tests',
2110
3288
  fn: function (){
2111
3289
  var self=this;
2112
- smalltalk.send(self, "_assert_", [smalltalk.send(nil, "_isNil", [])]);
2113
- smalltalk.send(self, "_deny_", [smalltalk.send(nil, "_notNil", [])]);
2114
- return self;},
3290
+ smalltalk.send(self,"_assert_",[smalltalk.send(nil,"_isNil",[])]);
3291
+ smalltalk.send(self,"_deny_",[smalltalk.send(nil,"_notNil",[])]);
3292
+ return self},
2115
3293
  args: [],
2116
3294
  source: "testIsNil\x0a\x09self assert: nil isNil.\x0a\x09self deny: nil notNil.",
2117
3295
  messageSends: ["assert:", "isNil", "deny:", "notNil"],