Skip to content

Commit e641b03

Browse files
committed
Minor changes to the search collection fixture
1 parent 0f84db3 commit e641b03

File tree

6 files changed

+39
-25
lines changed

6 files changed

+39
-25
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
examples
2+
numbersUpTo10000
3+
4+
^ self new
5+
addAll: (1 to: 10000);
6+
yourself
Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,17 @@
1-
as yet unclassified
1+
searching
22
binarySearch: anElement
3-
<layer: #bpInstrumented>
43
<exampleNamed: 'basic' active: true self: 'BPSearchCollection newFrom: (1 to: 15)' with: '15'>
5-
<exampleNamed: 'not found' self: #numbersUpTo10 with: '20'>
6-
<exampleNamed: 'broken example' with: ''>
7-
8-
| index low high flag |
9-
self bpBlock: 1 enteredAt: thisContext.
10-
low := 1.
11-
high := self size.
12-
flag := Object new.
13-
14-
self bpBlock: 1 leftWith: ([self bpBlock: 2 enteredAt: thisContext.
15-
self bpBlock: 2 leftWith: (high < low) at: thisContext] whileFalse: [
16-
self bpBlock: 3 enteredAt: thisContext.
17-
index := (self bpAssertAfter: [high + low // 2] that: [:result | result < 20] forAssertion: 7345425 given: 'BPSearchCollection>>#binarySearch:>>#''not found''' inContext: thisContext).self bpBlock: 3 leftWith: ((anElement < (self at: (self bpTrace: [index] forProbe: 3156627 inContext: thisContext)))
18-
ifTrue: [ self bpBlock: 4 enteredAt: thisContext.
19-
self bpBlock: 4 leftWith: (high := index - 1) at: thisContext ]
4+
<exampleNamed: 'not found' active: true self: #numbersUpTo10 with: '20'>
5+
<exampleNamed: 'large example' active: true self: #numbersUpTo10000 with: '4532'>
6+
| index low high |
7+
low := 1.
8+
high := "<bpReplace for: 'BPSearchCollection>>#binarySearch:>>#''not found''' with: [20]>"self size"</bpReplace>".
9+
10+
[high < low] whileFalseDo: "<bpSlider id: 5638804>"[
11+
index := "<bpAssert id: 7345425 for: 'BPSearchCollection>>#binarySearch:>>#''large example''' that: [:result | result between: 4000 and: 5000]>"high + low // 2"</bpAssert>".
12+
(anElement < (self at: "<bpProbe id: 3156627>"index"</bpProbe>"))
13+
ifTrue: [ high := index - 1 ]
2014
ifFalse: [
21-
self bpBlock: 5 enteredAt: thisContext.
22-
self bpBlock: 5 leftWith: (anElement > (self at: index)
23-
ifTrue: [ self bpBlock: 6 enteredAt: thisContext.
24-
self bpBlock: 6 leftWith: ((self bpTraceAssignmentOf: [low := index + 1] before: {'low' . low} forProbe: 4824443 inContext: thisContext)) at: thisContext]
25-
ifFalse: [ self bpBlock: 7 enteredAt: thisContext.
26-
^ self bpBlock: 7 leftWith: ((self bpTrace: [index] forProbe: 5475766 inContext: thisContext)) at: thisContext ]) at: thisContext]) at: thisContext]) at: thisContext.
15+
anElement > (self at: index)
16+
ifTrue: [ low := index + 1]
17+
ifFalse: [ ^ index ]]]"</bpSlider>".
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"class" : {
33
"compilerClass" : "pre 11/9/2019 15:00",
4-
"numbersUpTo10" : "pre 11/9/2019 15:06" },
4+
"numbersUpTo10" : "pre 11/9/2019 15:06",
5+
"numbersUpTo10000" : "pre 10/22/2020 13:54" },
56
"instance" : {
6-
"binarySearch:" : "pre 7/10/2020 15:59" } }
7+
"binarySearch:" : "pre 10/22/2020 13:59" } }
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
*Babylonian-Tests
2+
whileFalseDo: aBlock
3+
4+
"For demo purposes only to prevent the inline compilation of whileFalse"
5+
| predicate result |
6+
result := nil.
7+
[predicate := self value.
8+
predicate ifTrue: [^ result].
9+
result := aBlock value] repeat
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"class" : {
3+
},
4+
"instance" : {
5+
"whileFalseDo:" : "pre 10/22/2020 13:54" } }
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{
2+
"name" : "BlockClosure" }

0 commit comments

Comments
 (0)