diff options
Diffstat (limited to 'Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2')
4 files changed, 25 insertions, 274 deletions
diff --git a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/LICENSE b/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/LICENSE new file mode 100644 index 000000000..467d60878 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2014 Péter Szilágyi. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Alternatively, the CookieJar toolbox may be used in accordance with the terms +and conditions contained in a signed written agreement between you and the +author(s). diff --git a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/example_test.go b/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/example_test.go deleted file mode 100644 index 7b2e5ee84..000000000 --- a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/example_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// CookieJar - A contestant's algorithm toolbox -// Copyright (c) 2013 Peter Szilagyi. All rights reserved. -// -// CookieJar is dual licensed: you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free Software -// Foundation, either version 3 of the License, or (at your option) any later -// version. -// -// The toolbox is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -// more details. -// -// Alternatively, the CookieJar toolbox may be used in accordance with the terms -// and conditions contained in a signed written agreement between you and the -// author(s). - -package prque_test - -import ( - "fmt" - - "gopkg.in/karalabe/cookiejar.v2/collections/prque" -) - -// Insert some data into a priority queue and pop them out in prioritized order. -func Example_usage() { - // Define some data to push into the priority queue - prio := []float32{77.7, 22.2, 44.4, 55.5, 11.1, 88.8, 33.3, 99.9, 0.0, 66.6} - data := []string{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"} - - // Create the priority queue and insert the prioritized data - pq := prque.New() - for i := 0; i < len(data); i++ { - pq.Push(data[i], prio[i]) - } - // Pop out the data and print them - for !pq.Empty() { - val, prio := pq.Pop() - fmt.Printf("%.1f:%s ", prio, val) - } - // Output: - // 99.9:seven 88.8:five 77.7:zero 66.6:nine 55.5:three 44.4:two 33.3:six 22.2:one 11.1:four 0.0:eight -} diff --git a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque_test.go b/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque_test.go deleted file mode 100644 index 6a46bb807..000000000 --- a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque_test.go +++ /dev/null @@ -1,130 +0,0 @@ -// CookieJar - A contestant's algorithm toolbox -// Copyright (c) 2013 Peter Szilagyi. All rights reserved. -// -// CookieJar is dual licensed: use of this source code is governed by a BSD -// license that can be found in the LICENSE file. Alternatively, the CookieJar -// toolbox may be used in accordance with the terms and conditions contained -// in a signed written agreement between you and the author(s). - -package prque - -import ( - "math/rand" - "testing" -) - -func TestPrque(t *testing.T) { - // Generate a batch of random data and a specific priority order - size := 16 * blockSize - prio := rand.Perm(size) - data := make([]int, size) - for i := 0; i < size; i++ { - data[i] = rand.Int() - } - queue := New() - for rep := 0; rep < 2; rep++ { - // Fill a priority queue with the above data - for i := 0; i < size; i++ { - queue.Push(data[i], float32(prio[i])) - if queue.Size() != i+1 { - t.Errorf("queue size mismatch: have %v, want %v.", queue.Size(), i+1) - } - } - // Create a map the values to the priorities for easier verification - dict := make(map[float32]int) - for i := 0; i < size; i++ { - dict[float32(prio[i])] = data[i] - } - // Pop out the elements in priority order and verify them - prevPrio := float32(size + 1) - for !queue.Empty() { - val, prio := queue.Pop() - if prio > prevPrio { - t.Errorf("invalid priority order: %v after %v.", prio, prevPrio) - } - prevPrio = prio - if val != dict[prio] { - t.Errorf("push/pop mismatch: have %v, want %v.", val, dict[prio]) - } - delete(dict, prio) - } - } -} - -func TestReset(t *testing.T) { - // Generate a batch of random data and a specific priority order - size := 16 * blockSize - prio := rand.Perm(size) - data := make([]int, size) - for i := 0; i < size; i++ { - data[i] = rand.Int() - } - queue := New() - for rep := 0; rep < 2; rep++ { - // Fill a priority queue with the above data - for i := 0; i < size; i++ { - queue.Push(data[i], float32(prio[i])) - if queue.Size() != i+1 { - t.Errorf("queue size mismatch: have %v, want %v.", queue.Size(), i+1) - } - } - // Create a map the values to the priorities for easier verification - dict := make(map[float32]int) - for i := 0; i < size; i++ { - dict[float32(prio[i])] = data[i] - } - // Pop out half the elements in priority order and verify them - prevPrio := float32(size + 1) - for i := 0; i < size/2; i++ { - val, prio := queue.Pop() - if prio > prevPrio { - t.Errorf("invalid priority order: %v after %v.", prio, prevPrio) - } - prevPrio = prio - if val != dict[prio] { - t.Errorf("push/pop mismatch: have %v, want %v.", val, dict[prio]) - } - delete(dict, prio) - } - // Reset and ensure it's empty - queue.Reset() - if !queue.Empty() { - t.Errorf("priority queue not empty after reset: %v", queue) - } - } -} - -func BenchmarkPush(b *testing.B) { - // Create some initial data - data := make([]int, b.N) - prio := make([]float32, b.N) - for i := 0; i < len(data); i++ { - data[i] = rand.Int() - prio[i] = rand.Float32() - } - // Execute the benchmark - b.ResetTimer() - queue := New() - for i := 0; i < len(data); i++ { - queue.Push(data[i], prio[i]) - } -} - -func BenchmarkPop(b *testing.B) { - // Create some initial data - data := make([]int, b.N) - prio := make([]float32, b.N) - for i := 0; i < len(data); i++ { - data[i] = rand.Int() - prio[i] = rand.Float32() - } - queue := New() - for i := 0; i < len(data); i++ { - queue.Push(data[i], prio[i]) - } - // Execute the benchmark - b.ResetTimer() - for !queue.Empty() { - queue.Pop() - } -} diff --git a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack_test.go b/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack_test.go deleted file mode 100644 index def121812..000000000 --- a/Godeps/_workspace/src/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack_test.go +++ /dev/null @@ -1,100 +0,0 @@ -// CookieJar - A contestant's algorithm toolbox -// Copyright (c) 2013 Peter Szilagyi. All rights reserved. -// -// CookieJar is dual licensed: use of this source code is governed by a BSD -// license that can be found in the LICENSE file. Alternatively, the CookieJar -// toolbox may be used in accordance with the terms and conditions contained -// in a signed written agreement between you and the author(s). - -package prque - -import ( - "math/rand" - "sort" - "testing" -) - -func TestSstack(t *testing.T) { - // Create some initial data - size := 16 * blockSize - data := make([]*item, size) - for i := 0; i < size; i++ { - data[i] = &item{rand.Int(), rand.Float32()} - } - stack := newSstack() - for rep := 0; rep < 2; rep++ { - // Push all the data into the stack, pop out every second - secs := []*item{} - for i := 0; i < size; i++ { - stack.Push(data[i]) - if i%2 == 0 { - secs = append(secs, stack.Pop().(*item)) - } - } - rest := []*item{} - for stack.Len() > 0 { - rest = append(rest, stack.Pop().(*item)) - } - // Make sure the contents of the resulting slices are ok - for i := 0; i < size; i++ { - if i%2 == 0 && data[i] != secs[i/2] { - t.Errorf("push/pop mismatch: have %v, want %v.", secs[i/2], data[i]) - } - if i%2 == 1 && data[i] != rest[len(rest)-i/2-1] { - t.Errorf("push/pop mismatch: have %v, want %v.", rest[len(rest)-i/2-1], data[i]) - } - } - } -} - -func TestSstackSort(t *testing.T) { - // Create some initial data - size := 16 * blockSize - data := make([]*item, size) - for i := 0; i < size; i++ { - data[i] = &item{rand.Int(), float32(i)} - } - // Push all the data into the stack - stack := newSstack() - for _, val := range data { - stack.Push(val) - } - // Sort and pop the stack contents (should reverse the order) - sort.Sort(stack) - for _, val := range data { - out := stack.Pop() - if out != val { - t.Errorf("push/pop mismatch after sort: have %v, want %v.", out, val) - } - } -} - -func TestSstackReset(t *testing.T) { - // Create some initial data - size := 16 * blockSize - data := make([]*item, size) - for i := 0; i < size; i++ { - data[i] = &item{rand.Int(), rand.Float32()} - } - stack := newSstack() - for rep := 0; rep < 2; rep++ { - // Push all the data into the stack, pop out every second - secs := []*item{} - for i := 0; i < size; i++ { - stack.Push(data[i]) - if i%2 == 0 { - secs = append(secs, stack.Pop().(*item)) - } - } - // Reset and verify both pulled and stack contents - stack.Reset() - if stack.Len() != 0 { - t.Errorf("stack not empty after reset: %v", stack) - } - for i := 0; i < size; i++ { - if i%2 == 0 && data[i] != secs[i/2] { - t.Errorf("push/pop mismatch: have %v, want %v.", secs[i/2], data[i]) - } - } - } -} |