245 lines
4.3 KiB
Go
245 lines
4.3 KiB
Go
|
/*
|
||
|
Copyright 2016 The Kubernetes Authors.
|
||
|
|
||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
you may not use this file except in compliance with the License.
|
||
|
You may obtain a copy of the License at
|
||
|
|
||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
||
|
Unless required by applicable law or agreed to in writing, software
|
||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
See the License for the specific language governing permissions and
|
||
|
limitations under the License.
|
||
|
*/
|
||
|
|
||
|
package integer
|
||
|
|
||
|
import "testing"
|
||
|
|
||
|
func TestIntMax(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
nums []int
|
||
|
expectedMax int
|
||
|
}{
|
||
|
{
|
||
|
nums: []int{-1, 0},
|
||
|
expectedMax: 0,
|
||
|
},
|
||
|
{
|
||
|
nums: []int{-1, -2},
|
||
|
expectedMax: -1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int{0, 1},
|
||
|
expectedMax: 1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int{1, 2},
|
||
|
expectedMax: 2,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if max := IntMax(test.nums[0], test.nums[1]); max != test.expectedMax {
|
||
|
t.Errorf("expected %v, got %v", test.expectedMax, max)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestIntMin(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
nums []int
|
||
|
expectedMin int
|
||
|
}{
|
||
|
{
|
||
|
nums: []int{-1, 0},
|
||
|
expectedMin: -1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int{-1, -2},
|
||
|
expectedMin: -2,
|
||
|
},
|
||
|
{
|
||
|
nums: []int{0, 1},
|
||
|
expectedMin: 0,
|
||
|
},
|
||
|
{
|
||
|
nums: []int{1, 2},
|
||
|
expectedMin: 1,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if min := IntMin(test.nums[0], test.nums[1]); min != test.expectedMin {
|
||
|
t.Errorf("expected %v, got %v", test.expectedMin, min)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInt32Max(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
nums []int32
|
||
|
expectedMax int32
|
||
|
}{
|
||
|
{
|
||
|
nums: []int32{-1, 0},
|
||
|
expectedMax: 0,
|
||
|
},
|
||
|
{
|
||
|
nums: []int32{-1, -2},
|
||
|
expectedMax: -1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int32{0, 1},
|
||
|
expectedMax: 1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int32{1, 2},
|
||
|
expectedMax: 2,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if max := Int32Max(test.nums[0], test.nums[1]); max != test.expectedMax {
|
||
|
t.Errorf("expected %v, got %v", test.expectedMax, max)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInt32Min(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
nums []int32
|
||
|
expectedMin int32
|
||
|
}{
|
||
|
{
|
||
|
nums: []int32{-1, 0},
|
||
|
expectedMin: -1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int32{-1, -2},
|
||
|
expectedMin: -2,
|
||
|
},
|
||
|
{
|
||
|
nums: []int32{0, 1},
|
||
|
expectedMin: 0,
|
||
|
},
|
||
|
{
|
||
|
nums: []int32{1, 2},
|
||
|
expectedMin: 1,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if min := Int32Min(test.nums[0], test.nums[1]); min != test.expectedMin {
|
||
|
t.Errorf("expected %v, got %v", test.expectedMin, min)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInt64Max(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
nums []int64
|
||
|
expectedMax int64
|
||
|
}{
|
||
|
{
|
||
|
nums: []int64{-1, 0},
|
||
|
expectedMax: 0,
|
||
|
},
|
||
|
{
|
||
|
nums: []int64{-1, -2},
|
||
|
expectedMax: -1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int64{0, 1},
|
||
|
expectedMax: 1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int64{1, 2},
|
||
|
expectedMax: 2,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if max := Int64Max(test.nums[0], test.nums[1]); max != test.expectedMax {
|
||
|
t.Errorf("expected %v, got %v", test.expectedMax, max)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestInt64Min(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
nums []int64
|
||
|
expectedMin int64
|
||
|
}{
|
||
|
{
|
||
|
nums: []int64{-1, 0},
|
||
|
expectedMin: -1,
|
||
|
},
|
||
|
{
|
||
|
nums: []int64{-1, -2},
|
||
|
expectedMin: -2,
|
||
|
},
|
||
|
{
|
||
|
nums: []int64{0, 1},
|
||
|
expectedMin: 0,
|
||
|
},
|
||
|
{
|
||
|
nums: []int64{1, 2},
|
||
|
expectedMin: 1,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if min := Int64Min(test.nums[0], test.nums[1]); min != test.expectedMin {
|
||
|
t.Errorf("expected %v, got %v", test.expectedMin, min)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestRoundToInt32(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
num float64
|
||
|
exp int32
|
||
|
}{
|
||
|
{
|
||
|
num: 5.5,
|
||
|
exp: 6,
|
||
|
},
|
||
|
{
|
||
|
num: -3.7,
|
||
|
exp: -4,
|
||
|
},
|
||
|
{
|
||
|
num: 3.49,
|
||
|
exp: 3,
|
||
|
},
|
||
|
{
|
||
|
num: -7.9,
|
||
|
exp: -8,
|
||
|
},
|
||
|
{
|
||
|
num: -4.499999,
|
||
|
exp: -4,
|
||
|
},
|
||
|
{
|
||
|
num: 0,
|
||
|
exp: 0,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
t.Logf("executing scenario %d", i)
|
||
|
if got := RoundToInt32(test.num); got != test.exp {
|
||
|
t.Errorf("expected %d, got %d", test.exp, got)
|
||
|
}
|
||
|
}
|
||
|
}
|