// $G $F.go && $L $F.$A && ./$A.out // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "container/vector" type S struct { val int; } func (p *S) Init(val int) *S { p.val = val; return p; } func test0() { v := new(vector.Vector); if v.Len() != 0 { panic("len = ", v.Len(), "\n") } } func test1() { var a [1000]*S; for i := 0; i < len(a); i++ { a[i] = new(S).Init(i) } v := new(vector.Vector); for i := 0; i < len(a); i++ { v.Insert(0, a[i]); if v.Len() != i+1 { panic("len = ", v.Len(), "\n") } } for i := 0; i < v.Len(); i++ { x := v.At(i).(*S); if x.val != v.Len()-i-1 { panic("expected ", i, ", found ", x.val, "\n") } } for v.Len() > 10 { v.Delete(10) } } func main() { test0(); test1(); }