diff options
author | Jason Wangsadinata <jwangsadinata@gmail.com> | 2017-10-30 23:04:03 +0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2017-10-31 03:52:55 +0000 |
commit | 26e49e695f5df063f7f4e33718b22ce1cbc6e533 (patch) | |
tree | 460769b85608516cecb257d12d32f115ba15f8fd /src/container | |
parent | 94d937178039a8f8754dcba8e1d9d491cb7bebfc (diff) | |
download | go-git-26e49e695f5df063f7f4e33718b22ce1cbc6e533.tar.gz |
container/ring: fix example_test.go
The Len method is a linear operation. CL 73090 used Len to iterate over
a ring, resulting in a quadratic time operation.
Change-Id: Ib69c19190ba648311e6c345d8cb26292b50121ee
Reviewed-on: https://go-review.googlesource.com/74390
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/container')
-rw-r--r-- | src/container/ring/example_test.go | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/container/ring/example_test.go b/src/container/ring/example_test.go index ebea1e2713..30bd0d74c9 100644 --- a/src/container/ring/example_test.go +++ b/src/container/ring/example_test.go @@ -24,14 +24,17 @@ func ExampleRing_Next() { // Create a new ring of size 5 r := ring.New(5) + // Get the length of the ring + n := r.Len() + // Initialize the ring with some integer values - for i := 0; i < r.Len(); i++ { + for i := 0; i < n; i++ { r.Value = i r = r.Next() } // Iterate through the ring and print its contents - for j := 0; j < r.Len(); j++ { + for j := 0; j < n; j++ { fmt.Println(r.Value) r = r.Next() } @@ -48,14 +51,17 @@ func ExampleRing_Prev() { // Create a new ring of size 5 r := ring.New(5) + // Get the length of the ring + n := r.Len() + // Initialize the ring with some integer values - for i := 0; i < r.Len(); i++ { + for i := 0; i < n; i++ { r.Value = i r = r.Next() } // Iterate through the ring backwards and print its contents - for j := 0; j < r.Len(); j++ { + for j := 0; j < n; j++ { r = r.Prev() fmt.Println(r.Value) } @@ -72,8 +78,11 @@ func ExampleRing_Do() { // Create a new ring of size 5 r := ring.New(5) + // Get the length of the ring + n := r.Len() + // Initialize the ring with some integer values - for i := 0; i < r.Len(); i++ { + for i := 0; i < n; i++ { r.Value = i r = r.Next() } @@ -95,8 +104,11 @@ func ExampleRing_Move() { // Create a new ring of size 5 r := ring.New(5) + // Get the length of the ring + n := r.Len() + // Initialize the ring with some integer values - for i := 0; i < r.Len(); i++ { + for i := 0; i < n; i++ { r.Value = i r = r.Next() } @@ -122,14 +134,18 @@ func ExampleRing_Link() { r := ring.New(2) s := ring.New(2) + // Get the length of the ring + lr := r.Len() + ls := s.Len() + // Initialize r with 0s - for i := 0; i < r.Len(); i++ { + for i := 0; i < lr; i++ { r.Value = 0 r = r.Next() } // Initialize s with 1s - for j := 0; j < s.Len(); j++ { + for j := 0; j < ls; j++ { s.Value = 1 s = s.Next() } @@ -153,8 +169,11 @@ func ExampleRing_Unlink() { // Create a new ring of size 6 r := ring.New(6) + // Get the length of the ring + n := r.Len() + // Initialize the ring with some integer values - for i := 0; i < r.Len(); i++ { + for i := 0; i < n; i++ { r.Value = i r = r.Next() } |