1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-09 23:22:28 +08:00

feat: add Abs

This commit is contained in:
dudaodong
2023-06-27 10:24:35 +08:00
parent 8f49078eb3
commit 7da931e0a0
5 changed files with 113 additions and 0 deletions

View File

@@ -341,3 +341,13 @@ func Sin(radian float64, precision ...int) float64 {
func Log(n, base float64) float64 {
return math.Log(n) / math.Log(base)
}
// Abs returns the absolute value of x.
// Play: todo
func Abs[T constraints.Integer | constraints.Float](x T) T {
if x < 0 {
return (-x)
}
return x
}

View File

@@ -389,3 +389,18 @@ func ExampleLog() {
// 2.32
// 3
}
func ExampleAbs() {
result1 := Abs(-1)
result2 := Abs(-0.1)
result3 := Abs(float32(0.2))
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
// Output:
// 1
// 0.1
// 0.2
}

View File

@@ -285,3 +285,16 @@ func TestLog(t *testing.T) {
assert.EqualValues(3, TruncRound(Log(27, 3), 0))
assert.EqualValues(2.32, TruncRound(Log(5, 2), 2))
}
func TestAbs(t *testing.T) {
assert := internal.NewAssert(t, "TestAbs")
assert.Equal(0, Abs(0))
assert.Equal(1, Abs(-1))
assert.Equal(0.1, Abs(-0.1))
assert.Equal(int64(1), Abs(int64(-1)))
assert.Equal(float32(1), Abs(float32(-1)))
}