Files
xahau.js/packages/xrpl/test/utils/quality.ts
Jackson Mills 89b8833610 Fix Windows contributors being unable to build and test the xrpl mono repo (#1822)
* Let ripple-binary-codec to build on windows & nix

Co-authored-by: Justintime <justinthenicholasoftime@protonmail.com>
2021-11-23 12:29:06 -08:00

72 lines
1.9 KiB
TypeScript

import { assert } from 'chai'
import { ValidationError } from 'xrpl-local'
import { 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',
)
})
})