mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 04:05:52 +00:00
76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
import { assert } from 'chai'
|
|
|
|
import {
|
|
ValidationError,
|
|
decimalToQuality,
|
|
percentToQuality,
|
|
qualityToDecimal,
|
|
} from '../../src'
|
|
|
|
describe('Quality utils', function () {
|
|
it('converts 101 percent to valid Quality', function () {
|
|
const billionths = percentToQuality('101%')
|
|
|
|
assert.equal(billionths, 1010000000)
|
|
})
|
|
|
|
it('converts 1.01 to valid Quality', function () {
|
|
assert.equal(decimalToQuality('1.01'), 1010000000)
|
|
assert.equal(qualityToDecimal(1010000000), '1.01')
|
|
})
|
|
|
|
it('converts 99 percent to valid Quality', function () {
|
|
const billionths = percentToQuality('99%')
|
|
|
|
assert.equal(billionths, 990000000)
|
|
})
|
|
|
|
it('converts .99 to valid Quality', function () {
|
|
assert.equal(decimalToQuality('.99'), 990000000)
|
|
assert.equal(qualityToDecimal(990000000), '0.99')
|
|
})
|
|
|
|
it('converts 100 percent to 0', function () {
|
|
const billionths = percentToQuality('100%')
|
|
|
|
assert.equal(billionths, 0)
|
|
})
|
|
|
|
it('converts 1.00 percent to 0', function () {
|
|
assert.equal(decimalToQuality('1.00'), 0)
|
|
assert.equal(qualityToDecimal(0), '1')
|
|
})
|
|
|
|
it('Throws when percent Quality greater than maximum precision', function () {
|
|
assert.throws(
|
|
() => percentToQuality('.0000000000000011221%'),
|
|
ValidationError,
|
|
'Decimal exceeds maximum precision.',
|
|
)
|
|
})
|
|
|
|
it('Throws when decimal Quality greater than maximum precision', function () {
|
|
assert.throws(
|
|
() => decimalToQuality('.000000000000000011221'),
|
|
ValidationError,
|
|
'Decimal exceeds maximum precision.',
|
|
)
|
|
})
|
|
|
|
it('percentToQuality throws with gibberish', function () {
|
|
assert.throws(
|
|
() => percentToQuality('3dsadflk%'),
|
|
ValidationError,
|
|
'Value is not a number',
|
|
)
|
|
})
|
|
|
|
it('decimalToQuality throws with gibberish', function () {
|
|
assert.throws(
|
|
() => decimalToQuality('3dsadflk%'),
|
|
ValidationError,
|
|
'Value is not a number',
|
|
)
|
|
})
|
|
})
|