You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.2 KiB
Go
59 lines
2.2 KiB
Go
package cses
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestWeirdAlgo(t *testing.T) {
|
|
assert.Equal(t, "[3 10 5 16 8 4 2 1]", WeirdAlgo(3))
|
|
}
|
|
|
|
func TestMissingNumber(t *testing.T) {
|
|
assert.Equal(t, 4, MissingNumber(5, []int{2, 3, 1, 5}))
|
|
assert.Equal(t, 7, MissingNumber(9, []int{2, 3, 1, 5, 4, 6, 9, 8}))
|
|
}
|
|
|
|
func TestRepetitions(t *testing.T) {
|
|
assert.Equal(t, 0, Repetitions(""))
|
|
assert.Equal(t, 3, Repetitions("ATTCGGGA"))
|
|
assert.Equal(t, 4, Repetitions("AGGTTCGGGGA"))
|
|
}
|
|
|
|
func TestIncreasingArray(t *testing.T) {
|
|
assert.Equal(t, 0, IncreasingArray(5, []int{}))
|
|
assert.Equal(t, 0, IncreasingArray(5, []int{3}))
|
|
assert.Equal(t, 5, IncreasingArray(5, []int{3, 2, 5, 1, 7}))
|
|
}
|
|
|
|
func TestBeautifulPermutations(t *testing.T) {
|
|
assert.Equal(t, "NO SOLUTION", BeautifulPermutations(2))
|
|
assert.Equal(t, "NO SOLUTION", BeautifulPermutations(3))
|
|
assert.Equal(t, "[3 1 4 2]", BeautifulPermutations(4))
|
|
assert.Equal(t, "[5 3 1 4 2]", BeautifulPermutations(5))
|
|
assert.Equal(t, "[6 4 2 5 3 1]", BeautifulPermutations(6))
|
|
assert.Equal(t, "[7 5 3 1 6 4 2]", BeautifulPermutations(7))
|
|
assert.Equal(t, "[8 6 4 2 7 5 3 1]", BeautifulPermutations(8))
|
|
assert.Equal(t, "[9 7 5 3 1 8 6 4 2]", BeautifulPermutations(9))
|
|
assert.Equal(t, 48895, len(BeautifulPermutations(10000)))
|
|
}
|
|
|
|
func TestNumberSpiral(t *testing.T) {
|
|
assert.Equal(t, int64(8), NumberSpiral(2, 3))
|
|
assert.Equal(t, int64(1), NumberSpiral(1, 1))
|
|
assert.Equal(t, int64(15), NumberSpiral(4, 2))
|
|
assert.Equal(t, int64(11), NumberSpiral(2, 4))
|
|
assert.Equal(t, int64(13), NumberSpiral(4, 4))
|
|
assert.Equal(t, int64(18), NumberSpiral(5, 2))
|
|
assert.Equal(t, int64(24), NumberSpiral(2, 5))
|
|
assert.Equal(t, int64(21), NumberSpiral(5, 5))
|
|
assert.Equal(t, int64(19), NumberSpiral(5, 3))
|
|
assert.Equal(t, int64(23), NumberSpiral(3, 5))
|
|
assert.Equal(t, int64(889344699930098742), NumberSpiral(170550340, 943050741))
|
|
assert.Equal(t, int64(890061110095112626), NumberSpiral(121998376, 943430501))
|
|
assert.Equal(t, int64(593021767041187724), NumberSpiral(689913499, 770079066))
|
|
assert.Equal(t, int64(871712102163621276), NumberSpiral(586095107, 933655238))
|
|
assert.Equal(t, int64(999999997000000003), NumberSpiral(999_999_999, 999_999_999))
|
|
}
|