napi-rs/examples/napi-compat-mode/__tests__/napi6/bigint.spec.ts

40 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

import test from 'ava'
import { napiVersion } from '../napi-version'
2020-07-10 20:14:32 +09:00
const bindings = require('../../index.node')
test('should create bigints', (t) => {
if (napiVersion >= 6) {
t.is(bindings.testCreateBigintFromI64(), BigInt('9223372036854775807'))
t.is(bindings.testCreateBigintFromU64(), BigInt('18446744073709551615'))
2020-09-02 11:59:11 +09:00
t.is(
bindings.testCreateBigintFromI128(),
BigInt('170141183460469231731687303715884105727'),
)
t.is(
bindings.testCreateBigintFromU128(),
BigInt('340282366920938463463374607431768211455'),
)
2020-07-10 20:14:32 +09:00
t.is(
bindings.testCreateBigintFromWords(),
BigInt('-340282366920938463463374607431768211455'),
)
} else {
t.is(bindings.testCreateBigintFromI64, undefined)
}
})
test('should get integers from bigints', (t) => {
if (napiVersion >= 6) {
t.is(bindings.testGetBigintI64(BigInt('-123')), -123)
t.is(bindings.testGetBigintU64(BigInt(123)), 123)
t.deepEqual(bindings.testGetBigintWords(), [
BigInt('9223372036854775807'),
BigInt('9223372036854775807'),
])
} else {
t.is(bindings.testGetBigintI64, undefined)
}
})