infrastructure-upgrade/lib/v3-periphery/test/shared/formatSqrtRatioX96.spec.ts

31 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-04-08 21:46:18 +03:00
import { encodePriceSqrt } from './encodePriceSqrt'
import { expect } from './expect'
import { formatSqrtRatioX96 } from './formatSqrtRatioX96'
describe('#formatSqrtRatioX96', () => {
it('is correct for 9_999_999/10_000_000', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(9_999_999, 10_000_000))).to.eq('1.0000')
})
it('is correct for 9_999_999/1', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(9_999_999, 1))).to.eq('10000000')
})
it('is correct for 1/3', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(1, 3))).to.eq('0.33333')
})
it('is correct for 100/3', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(100, 3))).to.eq('33.333')
})
it('is correct for 1_000_000/3', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(1_000_000, 3))).to.eq('333330')
})
it('1e-18 still prints 5 sig figs', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(1, 1e18), 18, 18)).to.eq('0.0000000000000000010000')
})
it('accounts for decimal differences', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(1e6, 1e18), 18, 6)).to.eq('1.0000')
})
it('accounts for decimal differences in reverse', () => {
expect(formatSqrtRatioX96(encodePriceSqrt(1e18, 1e6), 6, 18)).to.eq('1.0000')
})
})