32 lines
801 B
Go
32 lines
801 B
Go
package api
|
|||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
func TestTierFromRank(t *testing.T) {
|
||
|
|
cases := []struct {
|
||
|
|
rank, total int
|
||
|
|
want string
|
||
|
|
}{
|
||
|
|
{1, 1, "champion"},
|
||
|
|
{1, 100, "champion"},
|
||
|
|
{1, 0, "bronze"}, // zero total → bronze (guard)
|
||
|
|
{0, 100, "bronze"}, // zero rank → bronze (guard)
|
||
|
|
{10, 100, "gold"}, // exactly 10%
|
||
|
|
{11, 100, "silver"}, // 11%
|
||
|
|
{30, 100, "silver"}, // exactly 30%
|
||
|
|
{31, 100, "bronze"}, // 31%
|
||
|
|
{5, 50, "gold"}, // 10%
|
||
|
|
{15, 50, "silver"}, // exactly 30%
|
||
|
|
{16, 50, "bronze"}, // 32% → bronze
|
||
|
|
{50, 100, "bronze"},
|
||
|
|
{2, 10, "silver"}, // 20% → silver
|
||
|
|
{1, 10, "champion"},
|
||
|
|
}
|
||
|
|
for _, c := range cases {
|
||
|
|
got := tierFromRank(c.rank, c.total)
|
||
|
|
if got != c.want {
|
||
|
|
t.Errorf("tierFromRank(%d, %d) = %q; want %q", c.rank, c.total, got, c.want)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|