a := p.a;
a[i], a[j] = a[j], a[i]
}
+
+
+// Iterate over all elements; driver for range
+func (p *Vector) iterate(c chan Element) {
+ for i := 0; i < len(p.a); i++ {
+ c <- p.a[i]
+ }
+ close(c);
+}
+
+// Channel iterator for range.
+func (p *Vector) Iter() chan Element {
+ c := make(chan Element);
+ go p.iterate(c);
+ return c;
+}
verify_pattern(t, a, 8, 1000, 2);
}
+
func TestSorting(t *testing.T) {
const n = 100;
a := vector.NewIntVector(n);
t.Error("should visit", n, "values; did visit", count)
}
}
+
+func TestIter(t *testing.T) {
+ const Len = 100;
+ x := vector.New(Len);
+ for i := 0; i < Len; i++ {
+ x.Set(i, i*i);
+ }
+ i := 0;
+ for v := range x.Iter() {
+ if v.(int) != i*i {
+ t.Error("Iter expected", i*i, "got", v.(int))
+ }
+ i++;
+ }
+ if i != Len {
+ t.Error("Iter stopped at", i, "not", Len)
+ }
+}