diff --git a/long/long-tests.ts b/long/long-tests.ts index c1a05f576..928cc9453 100644 --- a/long/long-tests.ts +++ b/long/long-tests.ts @@ -1,68 +1,117 @@ /// -// --- commonjs --- import Long = require("long"); -// --- browser --- -//var Long = dcodeIO.Long; -var val:dcodeIO.Long; -var n:number; -var b:boolean; -var s:string; +var val: Long; +var n: number = 42; +var b: boolean = true; +var s: string = "1337"; +val = new Long(0xFFFFFFFF, 0x7FFFFFFF, true); val = new Long(0xFFFFFFFF, 0x7FFFFFFF); +val = new Long(0xFFFFFFFF); -val = Long.from28Bits(0xFFFFFFF, 0xFFFFFFF, 0xFF); - -val = Long.fromInt(-1, true); n = val.low; n = val.high; b = val.unsigned; -s = val.toString(); val = val.add(val); +val = val.add(n); +val = val.add(s); + val = val.and(val); -val = val.clone(); +val = val.and(n); +val = val.and(s); + n = val.compare(val); +n = val.compare(n); +n = val.compare(s); + val = val.div(val); +val = val.div(n); +val = val.div(s); + b = val.equals(val); +b = val.equals(n); +b = val.equals(s); + n = val.getHighBits(); n = val.getHighBitsUnsigned(); n = val.getLowBits(); n = val.getLowBitsUnsigned(); n = val.getNumBitsAbs(); + b = val.greaterThan(val); +b = val.greaterThan(n); +b = val.greaterThan(s); + b = val.greaterThanOrEqual(val); +b = val.greaterThanOrEqual(n); +b = val.greaterThanOrEqual(s); + b = val.isEven(); b = val.isNegative(); b = val.isOdd(); +b = val.isPositive(); b = val.isZero(); + b = val.lessThan(val); +b = val.lessThan(n); +b = val.lessThan(s); + b = val.lessThanOrEqual(val); +b = val.lessThanOrEqual(n); +b = val.lessThanOrEqual(s); + val = val.modulo(val); +val = val.modulo(n); +val = val.modulo(s); + val = val.multiply(val); +val = val.multiply(n); +val = val.multiply(s); + val = val.negate(); val = val.not(); + b = val.notEquals(val); +b = val.notEquals(n); +b = val.notEquals(s); + val = val.or(val); +val = val.or(n); +val = val.or(s); + val = val.shiftLeft(2); +val = val.shiftLeft(val); + val = val.shiftRight(1); +val = val.shiftRight(val); + val = val.shiftRightUnsigned(1); +val = val.shiftRightUnsigned(val); + val = val.subtract(val); +val = val.subtract(n); +val = val.subtract(s); + n = val.toInt(); n = val.toNumber(); val = val.toSigned(); -val = val.toUnsigned(); -val = val.xor(val); -val = Long.MAX_SIGNED_VALUE; +s = val.toString(); +s = val.toString(n); + +val = val.toUnsigned(); + +val = val.xor(val); +val = val.xor(n); +val = val.xor(s); + val = Long.MAX_UNSIGNED_VALUE; val = Long.MAX_VALUE; -val = Long.MIN_SIGNED_VALUE; -val = Long.MIN_UNSIGNED_VALUE; val = Long.MIN_VALUE; val = Long.NEG_ONE; val = Long.ONE; +val = Long.UZERO; val = Long.ZERO; - - diff --git a/long/long.d.ts b/long/long.d.ts index 3d6554017..5c3704a81 100644 --- a/long/long.d.ts +++ b/long/long.d.ts @@ -1,80 +1,72 @@ -// Type definitions for Long.js 1.1.2 +// Type definitions for Long.js v2.2.5 // Project: https://github.com/dcodeIO/Long.js -// Definitions by: Toshihide Hara +// Definitions by: Peter Kooijmans // Definitions: https://github.com/borisyankov/DefinitelyTyped -declare module dcodeIO { - - interface LongStatic { - new(low:number, high:number, unsigned?:boolean):Long; - - MAX_SIGNED_VALUE:Long; - MAX_UNSIGNED_VALUE:Long; - MAX_VALUE:Long; - MIN_SIGNED_VALUE:Long; - MIN_UNSIGNED_VALUE:Long; - MIN_VALUE:Long; - NEG_ONE:Long; - ONE:Long; - ZERO:Long; - - from28Bits(part0:number, part1:number, part2:number, unsigned?:boolean):Long; - fromBits(lowBits:number, highBits:number, unsigned?:boolean):Long; - fromInt(value:number, unsigned?:boolean):Long; - fromNumber(value:number, unsigned?:boolean):Long; - fromString(str:string, unsigned?:boolean, radix?:number):Long; - fromString(str:string, unsigned?:number, radix?:number):Long; - fromString(str:string, unsigned?:any, radix?:number):Long; - } - - interface Long { - high:number; - low:number; - unsigned:boolean; - - add(other:Long):Long; - and(other:Long):Long; - clone():Long; - compare(other:Long):number; - div(other:Long):Long; - equals(other:Long):boolean; - getHighBits():number; - getHighBitsUnsigned():number; - getLowBits():number; - getLowBitsUnsigned():number; - getNumBitsAbs():number; - greaterThan(other:Long):boolean; - greaterThanOrEqual(other:Long):boolean; - isEven():boolean; - isNegative():boolean; - isOdd():boolean; - isZero():boolean; - lessThan(other:Long):boolean; - lessThanOrEqual(other:Long):boolean; - modulo(other:Long):Long; - multiply(other:Long):Long; - negate():Long; - not():Long; - notEquals(other:Long):boolean; - or(other:Long):Long; - shiftLeft(numBits:number):Long; - shiftRight(numBits:number):Long; - shiftRightUnsigned(numBits:number):Long; - subtract(other:Long):Long; - toInt():number; - toNumber():number; - toSigned():Long; - toString(radix?:number):string; - toUnsigned():Long; - xor(other:Long):Long; - } - - // for browser - export var Long:LongStatic; -} - -// for node, commonjs declare module "long" { - var Long:dcodeIO.LongStatic; - export = Long; + + module Long { + export var MAX_UNSIGNED_VALUE: Long; + export var MAX_VALUE: Long; + export var MIN_VALUE: Long; + export var NEG_ONE: Long; + export var ONE: Long; + export var UONE: Long; + export var UZERO: Long; + export var ZERO: Long; + + export function fromBits(lowBits: number, highBits: number, unsigned?: boolean): Long; + export function fromInt(value: number, unsigned?: boolean): Long; + export function fromNumber(value: number, unsigned?: boolean): Long; + export function fromString(str: string, unsigned?: boolean | number, radix?: number): Long; + export function fromValue(val: Long | number | string): Long; + + export function isLong(obj: any): boolean; + } + + class Long { + high: number; + low: number; + unsigned :boolean; + + constructor(low: number, high?: number, unsigned?:boolean); + + add(other: Long | number | string): Long; + and(other: Long | number | string): Long; + compare(other: Long | number | string): number; + div(divisor: Long | number | string): Long; + equals(other: Long | number | string): boolean; + getHighBits(): number; + getHighBitsUnsigned(): number; + getLowBits(): number; + getLowBitsUnsigned(): number; + getNumBitsAbs(): number; + greaterThan(other: Long | number | string): boolean; + greaterThanOrEqual(other: Long | number | string): boolean; + isEven(): boolean; + isNegative(): boolean; + isOdd(): boolean; + isPositive(): boolean; + isZero(): boolean; + lessThan(other: Long | number | string): boolean; + lessThanOrEqual(other: Long | number | string): boolean; + modulo(divisor: Long | number | string): Long; + multiply(multiplier: Long | number | string): Long; + negate(): Long; + not(): Long; + notEquals(other: Long | number | string): boolean; + or(other: Long | number | string): Long; + shiftLeft(numBits: number | Long): Long; + shiftRight(numBits: number | Long): Long; + shiftRightUnsigned(numBits: number | Long): Long; + subtract(other: Long | number | string): Long; + toInt(): number; + toNumber(): number; + toSigned(): Long; + toString(radix?: number): string; + toUnsigned(): Long; + xor(other: Long | number | string): Long; + } + + export = Long; }