mirror of
https://github.com/golang/go
synced 2024-11-12 06:40:22 -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
|
// Convenience wrappers
|
||||||
|
|
||||||
func (p *Array) Push(x Element) {
|
func (p *Array) Push(x Element) {
|
||||||
|
@ -139,7 +139,6 @@ func TestInsertArray(t *testing.T) {
|
|||||||
verify_pattern(t, a, 8, 1000, 2);
|
verify_pattern(t, a, 8, 1000, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func TestSorting(t *testing.T) {
|
func TestSorting(t *testing.T) {
|
||||||
const n = 100;
|
const n = 100;
|
||||||
a := array.NewIntArray(n);
|
a := array.NewIntArray(n);
|
||||||
@ -148,3 +147,26 @@ func TestSorting(t *testing.T) {
|
|||||||
}
|
}
|
||||||
if sort.IsSorted(a) { t.Error("not sorted") }
|
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