mirror of
https://github.com/golang/go
synced 2024-11-12 05:30:21 -07:00
add a trivial visitor method, just for fun
R=gri DELTA=31 (30 added, 1 deleted, 0 changed) OCL=24568 CL=24575
This commit is contained in:
parent
0970c46863
commit
39d05ae808
@ -140,6 +140,13 @@ func (p *Array) Slice(i, j int) *Array {
|
||||
}
|
||||
|
||||
|
||||
func (p *Array) Do(f func(elem Element)) {
|
||||
for i := 0; i < len(p.a); i++ {
|
||||
f(p.a[i]) // not too safe if f changes the Array
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Convenience wrappers
|
||||
|
||||
func (p *Array) Push(x Element) {
|
||||
|
@ -139,7 +139,6 @@ func TestInsertArray(t *testing.T) {
|
||||
verify_pattern(t, a, 8, 1000, 2);
|
||||
}
|
||||
|
||||
|
||||
func TestSorting(t *testing.T) {
|
||||
const n = 100;
|
||||
a := array.NewIntArray(n);
|
||||
@ -148,3 +147,26 @@ func TestSorting(t *testing.T) {
|
||||
}
|
||||
if sort.IsSorted(a) { t.Error("not sorted") }
|
||||
}
|
||||
|
||||
|
||||
func TestDo(t *testing.T) {
|
||||
const n = 25;
|
||||
const salt = 17;
|
||||
a := array.NewIntArray(n);
|
||||
for i := 0; i < n; i++ {
|
||||
a.Set(i, salt * i);
|
||||
}
|
||||
count := 0;
|
||||
a.Do(
|
||||
func(e array.Element) {
|
||||
i := e.(int);
|
||||
if i != count*salt {
|
||||
t.Error("value at", count, "should be", count*salt, "not", i)
|
||||
}
|
||||
count++;
|
||||
}
|
||||
);
|
||||
if count != n {
|
||||
t.Error("should visit", n, "values; did visit", count)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user