|
@@ -1935,6 +1935,119 @@ referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.IndexableCollectionTest);
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
+smalltalk.method({
|
|
|
+selector: "testAtIfPresent",
|
|
|
+protocol: 'tests',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+var visited,sentinel;
|
|
|
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
+var $2,$1,$4,$3;
|
|
|
+sentinel=_st($Object())._new();
|
|
|
+self._nonIndexesDo_((function(each){
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
+visited=nil;
|
|
|
+visited;
|
|
|
+$2=self._collection();
|
|
|
+$ctx2.sendIdx["collection"]=1;
|
|
|
+$1=_st($2)._at_ifPresent_(each,(function(value1){
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
+visited=value1;
|
|
|
+visited;
|
|
|
+return sentinel;
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({value1:value1},$ctx2,2)})}));
|
|
|
+$ctx2.sendIdx["at:ifPresent:"]=1;
|
|
|
+self._assert_equals_($1,nil);
|
|
|
+$ctx2.sendIdx["assert:equals:"]=1;
|
|
|
+return self._assert_(_st(visited)._isNil());
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
|
|
|
+self._samplesDo_((function(index,value){
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
+visited=nil;
|
|
|
+visited;
|
|
|
+$4=self._collection();
|
|
|
+$ctx2.sendIdx["collection"]=2;
|
|
|
+$3=_st($4)._at_ifPresent_(index,(function(value2){
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
+visited=value2;
|
|
|
+visited;
|
|
|
+return sentinel;
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({value2:value2},$ctx2,4)})}));
|
|
|
+self._assert_equals_($3,sentinel);
|
|
|
+$ctx2.sendIdx["assert:equals:"]=2;
|
|
|
+return self._assert_equals_(visited,_st(self._collection())._at_(index));
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({index:index,value:value},$ctx1,3)})}));
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"testAtIfPresent",{visited:visited,sentinel:sentinel},smalltalk.IndexableCollectionTest)})},
|
|
|
+args: [],
|
|
|
+source: "testAtIfPresent\x0a\x09| visited sentinel |\x0a\x09sentinel := Object new.\x0a\x09self nonIndexesDo: [ :each |\x0a\x09\x09visited := nil.\x0a\x09\x09self assert: (self collection at: each ifPresent: [ :value1 | visited := value1. sentinel ]) equals: nil.\x0a\x09\x09self assert: visited isNil ].\x0a\x09self samplesDo: [ :index :value |\x0a\x09\x09visited := nil.\x0a\x09\x09self assert: (self collection at: index ifPresent: [ :value2 | visited := value2. sentinel ]) equals: sentinel.\x0a\x09\x09self assert: visited equals: (self collection at: index) ]",
|
|
|
+messageSends: ["new", "nonIndexesDo:", "assert:equals:", "at:ifPresent:", "collection", "assert:", "isNil", "samplesDo:", "at:"],
|
|
|
+referencedClasses: ["Object"]
|
|
|
+}),
|
|
|
+smalltalk.IndexableCollectionTest);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+smalltalk.method({
|
|
|
+selector: "testAtIfPresentIfAbsent",
|
|
|
+protocol: 'tests',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+var visited,sentinel;
|
|
|
+function $Object(){return smalltalk.Object||(typeof Object=="undefined"?nil:Object)}
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
+var $2,$1,$3,$5,$4;
|
|
|
+sentinel=_st($Object())._new();
|
|
|
+self._nonIndexesDo_((function(each){
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
+visited=nil;
|
|
|
+visited;
|
|
|
+$2=self._collection();
|
|
|
+$ctx2.sendIdx["collection"]=1;
|
|
|
+$1=_st($2)._at_ifPresent_ifAbsent_(each,(function(value1){
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
+visited=value1;
|
|
|
+visited;
|
|
|
+return sentinel;
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({value1:value1},$ctx2,2)})}),(function(){
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
+return self._sampleNonValue();
|
|
|
+$ctx3.sendIdx["sampleNonValue"]=1;
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)})}));
|
|
|
+$ctx2.sendIdx["at:ifPresent:ifAbsent:"]=1;
|
|
|
+$3=self._sampleNonValue();
|
|
|
+$ctx2.sendIdx["sampleNonValue"]=2;
|
|
|
+self._assert_equals_($1,$3);
|
|
|
+$ctx2.sendIdx["assert:equals:"]=1;
|
|
|
+return self._assert_(_st(visited)._isNil());
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
|
|
|
+self._samplesDo_((function(index,value){
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
+visited=nil;
|
|
|
+visited;
|
|
|
+$5=self._collection();
|
|
|
+$ctx2.sendIdx["collection"]=2;
|
|
|
+$4=_st($5)._at_ifPresent_ifAbsent_(index,(function(value2){
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
+visited=value2;
|
|
|
+visited;
|
|
|
+return sentinel;
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({value2:value2},$ctx2,5)})}),(function(){
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
+return self._sampleNonValue();
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({},$ctx2,6)})}));
|
|
|
+self._assert_equals_($4,sentinel);
|
|
|
+$ctx2.sendIdx["assert:equals:"]=2;
|
|
|
+return self._assert_equals_(visited,_st(self._collection())._at_(index));
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({index:index,value:value},$ctx1,4)})}));
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"testAtIfPresentIfAbsent",{visited:visited,sentinel:sentinel},smalltalk.IndexableCollectionTest)})},
|
|
|
+args: [],
|
|
|
+source: "testAtIfPresentIfAbsent\x0a\x09| visited sentinel |\x0a\x09sentinel := Object new.\x0a\x09self nonIndexesDo: [ :each |\x0a\x09\x09visited := nil.\x0a\x09\x09self assert: (self collection at: each ifPresent: [ :value1 | visited := value1. sentinel ] ifAbsent: [ self sampleNonValue ] ) equals: self sampleNonValue.\x0a\x09\x09self assert: visited isNil ].\x0a\x09self samplesDo: [ :index :value |\x0a\x09\x09visited := nil.\x0a\x09\x09self assert: (self collection at: index ifPresent: [ :value2 | visited := value2. sentinel ] ifAbsent: [ self sampleNonValue ]) equals: sentinel.\x0a\x09\x09self assert: visited equals: (self collection at: index) ]",
|
|
|
+messageSends: ["new", "nonIndexesDo:", "assert:equals:", "at:ifPresent:ifAbsent:", "collection", "sampleNonValue", "assert:", "isNil", "samplesDo:", "at:"],
|
|
|
+referencedClasses: ["Object"]
|
|
|
+}),
|
|
|
+smalltalk.IndexableCollectionTest);
|
|
|
+
|
|
|
smalltalk.addMethod(
|
|
|
smalltalk.method({
|
|
|
selector: "testIndexOf",
|
|
@@ -2403,80 +2516,6 @@ referencedClasses: ["Dictionary"]
|
|
|
}),
|
|
|
smalltalk.DictionaryTest);
|
|
|
|
|
|
-smalltalk.addMethod(
|
|
|
-smalltalk.method({
|
|
|
-selector: "testIfPresent",
|
|
|
-protocol: 'tests',
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-var d,visited,absent;
|
|
|
-function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
|
|
|
-return smalltalk.withContext(function($ctx1) {
|
|
|
-visited=false;
|
|
|
-d=_st($Dictionary())._new();
|
|
|
-_st(d)._at_put_("hello","world");
|
|
|
-_st(d)._at_ifPresent_("hello",(function(value){
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
-visited=value;
|
|
|
-return visited;
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1,1)})}));
|
|
|
-$ctx1.sendIdx["at:ifPresent:"]=1;
|
|
|
-self._assert_equals_(visited,"world");
|
|
|
-absent=_st(d)._at_ifPresent_("bye",(function(value){
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
-visited=value;
|
|
|
-return visited;
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1,2)})}));
|
|
|
-self._assert_(_st(absent)._isNil());
|
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"testIfPresent",{d:d,visited:visited,absent:absent},smalltalk.DictionaryTest)})},
|
|
|
-args: [],
|
|
|
-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 equals: 'world'.\x0a\x0a\x09absent := d at: 'bye' ifPresent: [ :value | visited := value ].\x0a\x09self assert: absent isNil.",
|
|
|
-messageSends: ["new", "at:put:", "at:ifPresent:", "assert:equals:", "assert:", "isNil"],
|
|
|
-referencedClasses: ["Dictionary"]
|
|
|
-}),
|
|
|
-smalltalk.DictionaryTest);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-smalltalk.method({
|
|
|
-selector: "testIfPresentIfAbsent",
|
|
|
-protocol: 'tests',
|
|
|
-fn: function (){
|
|
|
-var self=this;
|
|
|
-var d,visited;
|
|
|
-function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
|
|
|
-return smalltalk.withContext(function($ctx1) {
|
|
|
-visited=false;
|
|
|
-d=_st($Dictionary())._new();
|
|
|
-_st(d)._at_put_("hello","world");
|
|
|
-_st(d)._at_ifPresent_ifAbsent_("hello",(function(value){
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
-visited=value;
|
|
|
-return visited;
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1,1)})}),(function(){
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
-visited=true;
|
|
|
-return visited;
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)})}));
|
|
|
-$ctx1.sendIdx["at:ifPresent:ifAbsent:"]=1;
|
|
|
-self._assert_equals_(visited,"world");
|
|
|
-_st(d)._at_ifPresent_ifAbsent_("buy",(function(value){
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
-visited=value;
|
|
|
-return visited;
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1,3)})}),(function(){
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
-visited=true;
|
|
|
-return visited;
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,4)})}));
|
|
|
-self._assert_(visited);
|
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"testIfPresentIfAbsent",{d:d,visited:visited},smalltalk.DictionaryTest)})},
|
|
|
-args: [],
|
|
|
-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 equals: 'world'.\x0a\x0a\x09d at: 'buy' ifPresent: [ :value | visited := value ] ifAbsent: [ visited := true ].\x0a\x09self assert: visited.",
|
|
|
-messageSends: ["new", "at:put:", "at:ifPresent:ifAbsent:", "assert:equals:", "assert:"],
|
|
|
-referencedClasses: ["Dictionary"]
|
|
|
-}),
|
|
|
-smalltalk.DictionaryTest);
|
|
|
-
|
|
|
smalltalk.addMethod(
|
|
|
smalltalk.method({
|
|
|
selector: "testKeys",
|