mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 04:27:54 +00:00
Add test cases for mostPositive and mostNegative
Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>
This commit is contained in:
parent
685ae02433
commit
4de3e73b8a
@ -105,8 +105,10 @@ func TestInt64AmountMul(t *testing.T) {
|
|||||||
|
|
||||||
{int64Amount{value: mostPositive, scale: -1}, 10, int64Amount{value: mostPositive, scale: -1}, false},
|
{int64Amount{value: mostPositive, scale: -1}, 10, int64Amount{value: mostPositive, scale: -1}, false},
|
||||||
{int64Amount{value: mostPositive, scale: -1}, 0, int64Amount{value: 0, scale: 0}, true},
|
{int64Amount{value: mostPositive, scale: -1}, 0, int64Amount{value: 0, scale: 0}, true},
|
||||||
|
{int64Amount{value: mostPositive, scale: 0}, 1, int64Amount{value: mostPositive, scale: 0}, true},
|
||||||
{int64Amount{value: mostPositive / 10, scale: 1}, 10, int64Amount{value: mostPositive / 10, scale: 1}, false},
|
{int64Amount{value: mostPositive / 10, scale: 1}, 10, int64Amount{value: mostPositive / 10, scale: 1}, false},
|
||||||
{int64Amount{value: mostPositive, scale: 0}, -1, int64Amount{value: -mostPositive, scale: 0}, true},
|
{int64Amount{value: mostPositive, scale: 0}, -1, int64Amount{value: -mostPositive, scale: 0}, true},
|
||||||
|
{int64Amount{value: mostNegative, scale: 0}, 1, int64Amount{value: mostNegative, scale: 0}, true},
|
||||||
{int64Amount{value: mostNegative, scale: 1}, 0, int64Amount{value: 0, scale: 0}, true},
|
{int64Amount{value: mostNegative, scale: 1}, 0, int64Amount{value: 0, scale: 0}, true},
|
||||||
{int64Amount{value: mostNegative, scale: 1}, 1, int64Amount{value: mostNegative, scale: 1}, false},
|
{int64Amount{value: mostNegative, scale: 1}, 1, int64Amount{value: mostNegative, scale: 1}, false},
|
||||||
} {
|
} {
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
|
"math/big"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
@ -32,15 +33,29 @@ import (
|
|||||||
inf "gopkg.in/inf.v0"
|
inf "gopkg.in/inf.v0"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
bigMostPositive = big.NewInt(mostPositive)
|
||||||
|
bigMostNegative = big.NewInt(mostNegative)
|
||||||
|
)
|
||||||
|
|
||||||
func dec(i int64, exponent int) infDecAmount {
|
func dec(i int64, exponent int) infDecAmount {
|
||||||
// See the below test-- scale is the negative of an exponent.
|
// See the below test-- scale is the negative of an exponent.
|
||||||
return infDecAmount{inf.NewDec(i, inf.Scale(-exponent))}
|
return infDecAmount{inf.NewDec(i, inf.Scale(-exponent))}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func bigDec(i *big.Int, exponent int) infDecAmount {
|
||||||
|
// See the below test-- scale is the negative of an exponent.
|
||||||
|
return infDecAmount{inf.NewDecBig(i, inf.Scale(-exponent))}
|
||||||
|
}
|
||||||
|
|
||||||
func decQuantity(i int64, exponent int, format Format) Quantity {
|
func decQuantity(i int64, exponent int, format Format) Quantity {
|
||||||
return Quantity{d: dec(i, exponent), Format: format}
|
return Quantity{d: dec(i, exponent), Format: format}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func bigDecQuantity(i *big.Int, exponent int, format Format) Quantity {
|
||||||
|
return Quantity{d: bigDec(i, exponent), Format: format}
|
||||||
|
}
|
||||||
|
|
||||||
func intQuantity(i int64, exponent Scale, format Format) Quantity {
|
func intQuantity(i int64, exponent Scale, format Format) Quantity {
|
||||||
return Quantity{i: int64Amount{value: i, scale: exponent}, Format: format}
|
return Quantity{i: int64Amount{value: i, scale: exponent}, Format: format}
|
||||||
}
|
}
|
||||||
@ -67,6 +82,38 @@ func TestDec(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBigDec(t *testing.T) {
|
||||||
|
table := []struct {
|
||||||
|
got infDecAmount
|
||||||
|
expect string
|
||||||
|
}{
|
||||||
|
{bigDec(big.NewInt(1), 0), "1"},
|
||||||
|
{bigDec(big.NewInt(1), 1), "10"},
|
||||||
|
{bigDec(big.NewInt(5), 2), "500"},
|
||||||
|
{bigDec(big.NewInt(8), 3), "8000"},
|
||||||
|
{bigDec(big.NewInt(2), 0), "2"},
|
||||||
|
{bigDec(big.NewInt(1), -1), "0.1"},
|
||||||
|
{bigDec(big.NewInt(3), -2), "0.03"},
|
||||||
|
{bigDec(big.NewInt(4), -3), "0.004"},
|
||||||
|
{bigDec(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), 0), "9223372036854775808"},
|
||||||
|
{bigDec(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), 1), "92233720368547758080"},
|
||||||
|
{bigDec(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), 2), "922337203685477580800"},
|
||||||
|
{bigDec(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), -1), "922337203685477580.8"},
|
||||||
|
{bigDec(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), -2), "92233720368547758.08"},
|
||||||
|
{bigDec(big.NewInt(0).Sub(bigMostNegative, big.NewInt(1)), 0), "-9223372036854775809"},
|
||||||
|
{bigDec(big.NewInt(0).Sub(bigMostNegative, big.NewInt(1)), 1), "-92233720368547758090"},
|
||||||
|
{bigDec(big.NewInt(0).Sub(bigMostNegative, big.NewInt(1)), 2), "-922337203685477580900"},
|
||||||
|
{bigDec(big.NewInt(0).Sub(bigMostNegative, big.NewInt(1)), -1), "-922337203685477580.9"},
|
||||||
|
{bigDec(big.NewInt(0).Sub(bigMostNegative, big.NewInt(1)), -2), "-92233720368547758.09"},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, item := range table {
|
||||||
|
if e, a := item.expect, item.got.Dec.String(); e != a {
|
||||||
|
t.Errorf("expected %v, got %v", e, a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TestQuantityParseZero ensures that when a 0 quantity is passed, its string value is 0
|
// TestQuantityParseZero ensures that when a 0 quantity is passed, its string value is 0
|
||||||
func TestQuantityParseZero(t *testing.T) {
|
func TestQuantityParseZero(t *testing.T) {
|
||||||
zero := MustParse("0")
|
zero := MustParse("0")
|
||||||
@ -1157,10 +1204,26 @@ func TestMul(t *testing.T) {
|
|||||||
{decQuantity(-50, 0, DecimalSI), 0, decQuantity(0, 0, DecimalSI), true},
|
{decQuantity(-50, 0, DecimalSI), 0, decQuantity(0, 0, DecimalSI), true},
|
||||||
{decQuantity(-50, 0, DecimalSI), -50, decQuantity(2500, 0, DecimalSI), true},
|
{decQuantity(-50, 0, DecimalSI), -50, decQuantity(2500, 0, DecimalSI), true},
|
||||||
{Quantity{Format: DecimalSI}, -50, decQuantity(0, 0, DecimalSI), true},
|
{Quantity{Format: DecimalSI}, -50, decQuantity(0, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostPositive, 0, DecimalSI), 0, decQuantity(0, 1, DecimalSI), true},
|
||||||
|
{decQuantity(mostPositive, 0, DecimalSI), 1, decQuantity(mostPositive, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostPositive, 0, DecimalSI), -1, decQuantity(-mostPositive, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostPositive/2, 0, DecimalSI), 2, decQuantity((mostPositive/2)*2, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostPositive/-2, 0, DecimalSI), -2, decQuantity((mostPositive/2)*2, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostPositive, 0, DecimalSI), 2,
|
||||||
|
bigDecQuantity(big.NewInt(0).Mul(bigMostPositive, big.NewInt(2)), 0, DecimalSI), false},
|
||||||
{decQuantity(mostPositive, 0, DecimalSI), 10, decQuantity(mostPositive, 1, DecimalSI), false},
|
{decQuantity(mostPositive, 0, DecimalSI), 10, decQuantity(mostPositive, 1, DecimalSI), false},
|
||||||
{decQuantity(mostNegative, 0, DecimalSI), 10, decQuantity(mostNegative, 1, DecimalSI), false},
|
|
||||||
{decQuantity(mostPositive, 0, DecimalSI), -10, decQuantity(-mostPositive, 1, DecimalSI), false},
|
{decQuantity(mostPositive, 0, DecimalSI), -10, decQuantity(-mostPositive, 1, DecimalSI), false},
|
||||||
|
{decQuantity(mostNegative, 0, DecimalSI), 0, decQuantity(0, 1, DecimalSI), true},
|
||||||
|
{decQuantity(mostNegative, 0, DecimalSI), 1, decQuantity(mostNegative, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostNegative, 0, DecimalSI), -1,
|
||||||
|
bigDecQuantity(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), 0, DecimalSI), false},
|
||||||
|
{decQuantity(mostNegative/2, 0, DecimalSI), 2, decQuantity(mostNegative, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostNegative/-2, 0, DecimalSI), -2, decQuantity(mostNegative, 0, DecimalSI), true},
|
||||||
|
{decQuantity(mostNegative, 0, DecimalSI), 2,
|
||||||
|
bigDecQuantity(big.NewInt(0).Mul(bigMostNegative, big.NewInt(2)), 0, DecimalSI), false},
|
||||||
|
{decQuantity(mostNegative, 0, DecimalSI), 10, decQuantity(mostNegative, 1, DecimalSI), false},
|
||||||
|
{decQuantity(mostNegative, 0, DecimalSI), -10,
|
||||||
|
bigDecQuantity(big.NewInt(0).Add(bigMostPositive, big.NewInt(1)), 1, DecimalSI), false},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range tests {
|
for i, test := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user