From d8bccbe35a2e1c89f7f3535ab684a72b3d82ae77 Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Fri, 17 Nov 2017 14:16:59 +0100 Subject: [PATCH] test: move test helper into test file --- geom/permute.go | 41 ----------------------------------------- geom/ring_test.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 41 deletions(-) delete mode 100644 geom/permute.go diff --git a/geom/permute.go b/geom/permute.go deleted file mode 100644 index df14e44..0000000 --- a/geom/permute.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2011 CZ.NIC z.s.p.o. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// blame: jnml, labs.nic.cz - -package geom - -import ( - "sort" -) - -// Generate the first permutation of data. -func permutationFirst(data sort.Interface) { - sort.Sort(data) -} - -// Generate the next permutation of data if possible and return true. -// If there is no more permutation left return false. -// Based on the algorithm described here: -// http://en.wikipedia.org/wiki/Permutation#Generation_in_lexicographic_order -func permutationNext(data sort.Interface) bool { - var k, l int - for k = data.Len() - 2; ; k-- { // 1. - if k < 0 { - return false - } - - if data.Less(k, k+1) { - break - } - } - for l = data.Len() - 1; !data.Less(k, l); l-- { // 2. - } - data.Swap(k, l) // 3. - for i, j := k+1, data.Len()-1; i < j; i++ { // 4. - data.Swap(i, j) - j-- - } - return true -} diff --git a/geom/ring_test.go b/geom/ring_test.go index cad6dc5..682eea3 100644 --- a/geom/ring_test.go +++ b/geom/ring_test.go @@ -211,3 +211,39 @@ func TestRingMergePermutations(t *testing.T) { } } } + +// Copyright (c) 2011 CZ.NIC z.s.p.o. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// blame: jnml, labs.nic.cz + +// Generate the first permutation of data. +func permutationFirst(data sort.Interface) { + sort.Sort(data) +} + +// Generate the next permutation of data if possible and return true. +// If there is no more permutation left return false. +// Based on the algorithm described here: +// http://en.wikipedia.org/wiki/Permutation#Generation_in_lexicographic_order +func permutationNext(data sort.Interface) bool { + var k, l int + for k = data.Len() - 2; ; k-- { // 1. + if k < 0 { + return false + } + + if data.Less(k, k+1) { + break + } + } + for l = data.Len() - 1; !data.Less(k, l); l-- { // 2. + } + data.Swap(k, l) // 3. + for i, j := k+1, data.Len()-1; i < j; i++ { // 4. + data.Swap(i, j) + j-- + } + return true +}