// Copyright © 2016 Abcum Ltd
//
// 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 ints

func Min(min int, vals ...int) int {
	for _, val := range vals {
		if val < min {
			min = val
		}
	}
	return min
}

func Max(max int, vals ...int) int {
	for _, val := range vals {
		if val > max {
			max = val
		}
	}
	return max
}

func Below(cen, val int) int {
	if val < cen {
		return val
	}
	return cen
}

func Above(cen, val int) int {
	if val > cen {
		return val
	}
	return cen
}

func Between(min, max, val int) int {
	switch {
	case val < min:
		return min
	case val > max:
		return max
	default:
		return val
	}
}