rarity.test.js 703 Bytes
import { describe, expect, it } from 'vitest'
import { maxRarityForLevel, rarityForReward } from '../src/rarity.js'

describe('稀有度区间与等级上限的边界值', () => {
  it.each([[1, 1], [49, 1], [50, 2], [99, 2], [100, 3], [12799, 9], [12800, 10], [1_000_000, 10]])('reward %i → rarity %i', (reward, rarity) => {
    expect(rarityForReward(reward)).toBe(rarity)
  })

  it.each([[1, 3], [2, 4], [8, 10], [50, 10]])('level %i → 上限 %i', (level, max) => {
    expect(maxRarityForLevel(level)).toBe(max)
  })

  it('非法输入直接 throw', () => {
    expect(() => rarityForReward(0)).toThrow(/reward invalid/)
    expect(() => maxRarityForLevel(0)).toThrow(/level invalid/)
  })
})