@uniswap/sdk-core 7.7.0 → 7.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cjs/src/addresses.d.ts → addresses.d.ts} +58 -58
- package/dist/{cjs/src/chains.d.ts → chains.d.ts} +44 -44
- package/dist/{cjs/src/constants.d.ts → constants.d.ts} +12 -12
- package/dist/{esm/src/entities → entities}/baseCurrency.d.ts +49 -49
- package/dist/{cjs/src/entities → entities}/currency.d.ts +3 -3
- package/dist/{esm/src/entities → entities}/ether.d.ts +13 -13
- package/dist/{cjs/src/entities → entities}/fractions/currencyAmount.d.ts +31 -31
- package/dist/{esm/src/entities → entities}/fractions/fraction.d.ts +24 -24
- package/dist/{cjs/src/entities → entities}/fractions/index.d.ts +4 -4
- package/dist/{types/src/entities → entities}/fractions/percent.d.ts +14 -14
- package/dist/{cjs/src/entities → entities}/fractions/price.d.ts +38 -38
- package/dist/{esm/src/entities → entities}/index.d.ts +6 -6
- package/dist/{esm/src/entities → entities}/nativeCurrency.d.ts +8 -8
- package/dist/{cjs/src/entities → entities}/token.d.ts +48 -48
- package/dist/{types/src/entities → entities}/weth9.d.ts +7 -7
- package/dist/{esm/src/index.d.ts → index.d.ts} +5 -5
- package/dist/index.js +8 -0
- package/dist/sdk-core.cjs.development.js +1118 -0
- package/dist/sdk-core.cjs.development.js.map +1 -0
- package/dist/sdk-core.cjs.production.min.js +2 -0
- package/dist/sdk-core.cjs.production.min.js.map +1 -0
- package/dist/sdk-core.esm.js +1079 -0
- package/dist/sdk-core.esm.js.map +1 -0
- package/dist/{cjs/src/utils → utils}/computePriceImpact.d.ts +8 -8
- package/dist/{cjs/src/utils → utils}/computeZksyncCreate2Address.d.ts +2 -2
- package/dist/{esm/src/utils → utils}/index.d.ts +5 -5
- package/dist/{cjs/src/utils → utils}/sortedInsert.d.ts +1 -1
- package/dist/{types/src/utils → utils}/sqrt.d.ts +7 -7
- package/dist/{esm/src/utils → utils}/validateAndParseAddress.d.ts +10 -10
- package/package.json +16 -28
- package/dist/cjs/src/addresses.js +0 -433
- package/dist/cjs/src/addresses.js.map +0 -1
- package/dist/cjs/src/addresses.test.d.ts +0 -1
- package/dist/cjs/src/addresses.test.js +0 -41
- package/dist/cjs/src/addresses.test.js.map +0 -1
- package/dist/cjs/src/chains.js +0 -79
- package/dist/cjs/src/chains.js.map +0 -1
- package/dist/cjs/src/constants.js +0 -18
- package/dist/cjs/src/constants.js.map +0 -1
- package/dist/cjs/src/entities/baseCurrency.d.ts +0 -49
- package/dist/cjs/src/entities/baseCurrency.js +0 -27
- package/dist/cjs/src/entities/baseCurrency.js.map +0 -1
- package/dist/cjs/src/entities/currency.js +0 -3
- package/dist/cjs/src/entities/currency.js.map +0 -1
- package/dist/cjs/src/entities/currency.test.d.ts +0 -1
- package/dist/cjs/src/entities/currency.test.js +0 -27
- package/dist/cjs/src/entities/currency.test.js.map +0 -1
- package/dist/cjs/src/entities/ether.d.ts +0 -13
- package/dist/cjs/src/entities/ether.js +0 -30
- package/dist/cjs/src/entities/ether.js.map +0 -1
- package/dist/cjs/src/entities/ether.test.d.ts +0 -1
- package/dist/cjs/src/entities/ether.test.js +0 -19
- package/dist/cjs/src/entities/ether.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/currencyAmount.js +0 -72
- package/dist/cjs/src/entities/fractions/currencyAmount.js.map +0 -1
- package/dist/cjs/src/entities/fractions/currencyAmount.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/currencyAmount.test.js +0 -99
- package/dist/cjs/src/entities/fractions/currencyAmount.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/fraction.d.ts +0 -24
- package/dist/cjs/src/entities/fractions/fraction.js +0 -104
- package/dist/cjs/src/entities/fractions/fraction.js.map +0 -1
- package/dist/cjs/src/entities/fractions/fraction.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/fraction.test.js +0 -86
- package/dist/cjs/src/entities/fractions/fraction.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/index.js +0 -12
- package/dist/cjs/src/entities/fractions/index.js.map +0 -1
- package/dist/cjs/src/entities/fractions/percent.d.ts +0 -14
- package/dist/cjs/src/entities/fractions/percent.js +0 -43
- package/dist/cjs/src/entities/fractions/percent.js.map +0 -1
- package/dist/cjs/src/entities/fractions/percent.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/percent.test.js +0 -53
- package/dist/cjs/src/entities/fractions/percent.test.js.map +0 -1
- package/dist/cjs/src/entities/fractions/price.js +0 -73
- package/dist/cjs/src/entities/fractions/price.js.map +0 -1
- package/dist/cjs/src/entities/fractions/price.test.d.ts +0 -1
- package/dist/cjs/src/entities/fractions/price.test.js +0 -58
- package/dist/cjs/src/entities/fractions/price.test.js.map +0 -1
- package/dist/cjs/src/entities/index.d.ts +0 -6
- package/dist/cjs/src/entities/index.js +0 -10
- package/dist/cjs/src/entities/index.js.map +0 -1
- package/dist/cjs/src/entities/nativeCurrency.d.ts +0 -8
- package/dist/cjs/src/entities/nativeCurrency.js +0 -16
- package/dist/cjs/src/entities/nativeCurrency.js.map +0 -1
- package/dist/cjs/src/entities/token.js +0 -69
- package/dist/cjs/src/entities/token.js.map +0 -1
- package/dist/cjs/src/entities/token.test.d.ts +0 -1
- package/dist/cjs/src/entities/token.test.js +0 -74
- package/dist/cjs/src/entities/token.test.js.map +0 -1
- package/dist/cjs/src/entities/weth9.d.ts +0 -7
- package/dist/cjs/src/entities/weth9.js +0 -35
- package/dist/cjs/src/entities/weth9.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -5
- package/dist/cjs/src/index.js +0 -9
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/utils/computePriceImpact.js +0 -18
- package/dist/cjs/src/utils/computePriceImpact.js.map +0 -1
- package/dist/cjs/src/utils/computePriceImpact.test.d.ts +0 -1
- package/dist/cjs/src/utils/computePriceImpact.test.js +0 -20
- package/dist/cjs/src/utils/computePriceImpact.test.js.map +0 -1
- package/dist/cjs/src/utils/computeZksyncCreate2Address.js +0 -15
- package/dist/cjs/src/utils/computeZksyncCreate2Address.js.map +0 -1
- package/dist/cjs/src/utils/index.d.ts +0 -5
- package/dist/cjs/src/utils/index.js +0 -14
- package/dist/cjs/src/utils/index.js.map +0 -1
- package/dist/cjs/src/utils/sortedInsert.js +0 -38
- package/dist/cjs/src/utils/sortedInsert.js.map +0 -1
- package/dist/cjs/src/utils/sortedInsert.test.d.ts +0 -1
- package/dist/cjs/src/utils/sortedInsert.test.js +0 -60
- package/dist/cjs/src/utils/sortedInsert.test.js.map +0 -1
- package/dist/cjs/src/utils/sqrt.d.ts +0 -7
- package/dist/cjs/src/utils/sqrt.js +0 -32
- package/dist/cjs/src/utils/sqrt.js.map +0 -1
- package/dist/cjs/src/utils/sqrt.test.d.ts +0 -1
- package/dist/cjs/src/utils/sqrt.test.js +0 -26
- package/dist/cjs/src/utils/sqrt.test.js.map +0 -1
- package/dist/cjs/src/utils/validateAndParseAddress.d.ts +0 -10
- package/dist/cjs/src/utils/validateAndParseAddress.js +0 -31
- package/dist/cjs/src/utils/validateAndParseAddress.js.map +0 -1
- package/dist/cjs/src/utils/validateAndParseAddress.test.d.ts +0 -1
- package/dist/cjs/src/utils/validateAndParseAddress.test.js +0 -32
- package/dist/cjs/src/utils/validateAndParseAddress.test.js.map +0 -1
- package/dist/esm/src/addresses.d.ts +0 -58
- package/dist/esm/src/addresses.js +0 -429
- package/dist/esm/src/addresses.js.map +0 -1
- package/dist/esm/src/addresses.test.d.ts +0 -1
- package/dist/esm/src/addresses.test.js +0 -39
- package/dist/esm/src/addresses.test.js.map +0 -1
- package/dist/esm/src/chains.d.ts +0 -44
- package/dist/esm/src/chains.js +0 -76
- package/dist/esm/src/chains.js.map +0 -1
- package/dist/esm/src/constants.d.ts +0 -12
- package/dist/esm/src/constants.js +0 -14
- package/dist/esm/src/constants.js.map +0 -1
- package/dist/esm/src/entities/baseCurrency.js +0 -22
- package/dist/esm/src/entities/baseCurrency.js.map +0 -1
- package/dist/esm/src/entities/currency.d.ts +0 -3
- package/dist/esm/src/entities/currency.js +0 -2
- package/dist/esm/src/entities/currency.js.map +0 -1
- package/dist/esm/src/entities/currency.test.d.ts +0 -1
- package/dist/esm/src/entities/currency.test.js +0 -25
- package/dist/esm/src/entities/currency.test.js.map +0 -1
- package/dist/esm/src/entities/ether.js +0 -25
- package/dist/esm/src/entities/ether.js.map +0 -1
- package/dist/esm/src/entities/ether.test.d.ts +0 -1
- package/dist/esm/src/entities/ether.test.js +0 -17
- package/dist/esm/src/entities/ether.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/currencyAmount.d.ts +0 -31
- package/dist/esm/src/entities/fractions/currencyAmount.js +0 -67
- package/dist/esm/src/entities/fractions/currencyAmount.js.map +0 -1
- package/dist/esm/src/entities/fractions/currencyAmount.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/currencyAmount.test.js +0 -96
- package/dist/esm/src/entities/fractions/currencyAmount.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/fraction.js +0 -99
- package/dist/esm/src/entities/fractions/fraction.js.map +0 -1
- package/dist/esm/src/entities/fractions/fraction.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/fraction.test.js +0 -83
- package/dist/esm/src/entities/fractions/fraction.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/index.d.ts +0 -4
- package/dist/esm/src/entities/fractions/index.js +0 -5
- package/dist/esm/src/entities/fractions/index.js.map +0 -1
- package/dist/esm/src/entities/fractions/percent.d.ts +0 -14
- package/dist/esm/src/entities/fractions/percent.js +0 -38
- package/dist/esm/src/entities/fractions/percent.js.map +0 -1
- package/dist/esm/src/entities/fractions/percent.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/percent.test.js +0 -51
- package/dist/esm/src/entities/fractions/percent.test.js.map +0 -1
- package/dist/esm/src/entities/fractions/price.d.ts +0 -38
- package/dist/esm/src/entities/fractions/price.js +0 -68
- package/dist/esm/src/entities/fractions/price.js.map +0 -1
- package/dist/esm/src/entities/fractions/price.test.d.ts +0 -1
- package/dist/esm/src/entities/fractions/price.test.js +0 -56
- package/dist/esm/src/entities/fractions/price.test.js.map +0 -1
- package/dist/esm/src/entities/index.js +0 -7
- package/dist/esm/src/entities/index.js.map +0 -1
- package/dist/esm/src/entities/nativeCurrency.js +0 -12
- package/dist/esm/src/entities/nativeCurrency.js.map +0 -1
- package/dist/esm/src/entities/token.d.ts +0 -48
- package/dist/esm/src/entities/token.js +0 -64
- package/dist/esm/src/entities/token.js.map +0 -1
- package/dist/esm/src/entities/token.test.d.ts +0 -1
- package/dist/esm/src/entities/token.test.js +0 -72
- package/dist/esm/src/entities/token.test.js.map +0 -1
- package/dist/esm/src/entities/weth9.d.ts +0 -7
- package/dist/esm/src/entities/weth9.js +0 -32
- package/dist/esm/src/entities/weth9.js.map +0 -1
- package/dist/esm/src/index.js +0 -6
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/utils/computePriceImpact.d.ts +0 -8
- package/dist/esm/src/utils/computePriceImpact.js +0 -14
- package/dist/esm/src/utils/computePriceImpact.js.map +0 -1
- package/dist/esm/src/utils/computePriceImpact.test.d.ts +0 -1
- package/dist/esm/src/utils/computePriceImpact.test.js +0 -18
- package/dist/esm/src/utils/computePriceImpact.test.js.map +0 -1
- package/dist/esm/src/utils/computeZksyncCreate2Address.d.ts +0 -2
- package/dist/esm/src/utils/computeZksyncCreate2Address.js +0 -11
- package/dist/esm/src/utils/computeZksyncCreate2Address.js.map +0 -1
- package/dist/esm/src/utils/index.js +0 -6
- package/dist/esm/src/utils/index.js.map +0 -1
- package/dist/esm/src/utils/sortedInsert.d.ts +0 -1
- package/dist/esm/src/utils/sortedInsert.js +0 -33
- package/dist/esm/src/utils/sortedInsert.js.map +0 -1
- package/dist/esm/src/utils/sortedInsert.test.d.ts +0 -1
- package/dist/esm/src/utils/sortedInsert.test.js +0 -58
- package/dist/esm/src/utils/sortedInsert.test.js.map +0 -1
- package/dist/esm/src/utils/sqrt.d.ts +0 -7
- package/dist/esm/src/utils/sqrt.js +0 -27
- package/dist/esm/src/utils/sqrt.js.map +0 -1
- package/dist/esm/src/utils/sqrt.test.d.ts +0 -1
- package/dist/esm/src/utils/sqrt.test.js +0 -23
- package/dist/esm/src/utils/sqrt.test.js.map +0 -1
- package/dist/esm/src/utils/validateAndParseAddress.js +0 -26
- package/dist/esm/src/utils/validateAndParseAddress.js.map +0 -1
- package/dist/esm/src/utils/validateAndParseAddress.test.d.ts +0 -1
- package/dist/esm/src/utils/validateAndParseAddress.test.js +0 -30
- package/dist/esm/src/utils/validateAndParseAddress.test.js.map +0 -1
- package/dist/types/src/addresses.d.ts +0 -58
- package/dist/types/src/addresses.test.d.ts +0 -1
- package/dist/types/src/chains.d.ts +0 -44
- package/dist/types/src/constants.d.ts +0 -12
- package/dist/types/src/entities/baseCurrency.d.ts +0 -49
- package/dist/types/src/entities/currency.d.ts +0 -3
- package/dist/types/src/entities/currency.test.d.ts +0 -1
- package/dist/types/src/entities/ether.d.ts +0 -13
- package/dist/types/src/entities/ether.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/currencyAmount.d.ts +0 -31
- package/dist/types/src/entities/fractions/currencyAmount.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/fraction.d.ts +0 -24
- package/dist/types/src/entities/fractions/fraction.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/index.d.ts +0 -4
- package/dist/types/src/entities/fractions/percent.test.d.ts +0 -1
- package/dist/types/src/entities/fractions/price.d.ts +0 -38
- package/dist/types/src/entities/fractions/price.test.d.ts +0 -1
- package/dist/types/src/entities/index.d.ts +0 -6
- package/dist/types/src/entities/nativeCurrency.d.ts +0 -8
- package/dist/types/src/entities/token.d.ts +0 -48
- package/dist/types/src/entities/token.test.d.ts +0 -1
- package/dist/types/src/index.d.ts +0 -5
- package/dist/types/src/utils/computePriceImpact.d.ts +0 -8
- package/dist/types/src/utils/computePriceImpact.test.d.ts +0 -1
- package/dist/types/src/utils/computeZksyncCreate2Address.d.ts +0 -2
- package/dist/types/src/utils/index.d.ts +0 -5
- package/dist/types/src/utils/sortedInsert.d.ts +0 -1
- package/dist/types/src/utils/sortedInsert.test.d.ts +0 -1
- package/dist/types/src/utils/sqrt.test.d.ts +0 -1
- package/dist/types/src/utils/validateAndParseAddress.d.ts +0 -10
- package/dist/types/src/utils/validateAndParseAddress.test.d.ts +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
export var TradeType;
|
|
3
|
-
(function (TradeType) {
|
|
4
|
-
TradeType[TradeType["EXACT_INPUT"] = 0] = "EXACT_INPUT";
|
|
5
|
-
TradeType[TradeType["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT";
|
|
6
|
-
})(TradeType || (TradeType = {}));
|
|
7
|
-
export var Rounding;
|
|
8
|
-
(function (Rounding) {
|
|
9
|
-
Rounding[Rounding["ROUND_DOWN"] = 0] = "ROUND_DOWN";
|
|
10
|
-
Rounding[Rounding["ROUND_HALF_UP"] = 1] = "ROUND_HALF_UP";
|
|
11
|
-
Rounding[Rounding["ROUND_UP"] = 2] = "ROUND_UP";
|
|
12
|
-
})(Rounding || (Rounding = {}));
|
|
13
|
-
export const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
|
|
14
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAKvB,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uDAAW,CAAA;IACX,yDAAY,CAAA;AACd,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,mDAAU,CAAA;IACV,yDAAa,CAAA;IACb,+CAAQ,CAAA;AACV,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAA"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import invariant from 'tiny-invariant';
|
|
2
|
-
/**
|
|
3
|
-
* A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
|
|
4
|
-
*/
|
|
5
|
-
export class BaseCurrency {
|
|
6
|
-
/**
|
|
7
|
-
* Constructs an instance of the base class `BaseCurrency`.
|
|
8
|
-
* @param chainId the chain ID on which this currency resides
|
|
9
|
-
* @param decimals decimals of the currency
|
|
10
|
-
* @param symbol symbol of the currency
|
|
11
|
-
* @param name of the currency
|
|
12
|
-
*/
|
|
13
|
-
constructor(chainId, decimals, symbol, name) {
|
|
14
|
-
invariant(Number.isSafeInteger(chainId), 'CHAIN_ID');
|
|
15
|
-
invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS');
|
|
16
|
-
this.chainId = chainId;
|
|
17
|
-
this.decimals = decimals;
|
|
18
|
-
this.symbol = symbol;
|
|
19
|
-
this.name = name;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=baseCurrency.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseCurrency.js","sourceRoot":"","sources":["../../../../src/entities/baseCurrency.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAItC;;GAEG;AACH,MAAM,OAAgB,YAAY;IA2BhC;;;;;;OAMG;IACH,YAAsB,OAAe,EAAE,QAAgB,EAAE,MAAe,EAAE,IAAa;QACrF,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;QACpD,SAAS,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAA;QAEpF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CAaF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../../src/entities/currency.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Ether, Token } from './index';
|
|
2
|
-
describe('Currency', () => {
|
|
3
|
-
const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';
|
|
4
|
-
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
5
|
-
const t0 = new Token(1, ADDRESS_ZERO, 18);
|
|
6
|
-
const t1 = new Token(1, ADDRESS_ONE, 18);
|
|
7
|
-
describe('#equals', () => {
|
|
8
|
-
it('ether on same chains is ether', () => {
|
|
9
|
-
expect(Ether.onChain(1).equals(Ether.onChain(1)));
|
|
10
|
-
});
|
|
11
|
-
it('ether is not token0', () => {
|
|
12
|
-
expect(Ether.onChain(1).equals(t0)).toStrictEqual(false);
|
|
13
|
-
});
|
|
14
|
-
it('token1 is not token0', () => {
|
|
15
|
-
expect(t1.equals(t0)).toStrictEqual(false);
|
|
16
|
-
});
|
|
17
|
-
it('token0 is token0', () => {
|
|
18
|
-
expect(t0.equals(t0)).toStrictEqual(true);
|
|
19
|
-
});
|
|
20
|
-
it('token0 is equal to another token0', () => {
|
|
21
|
-
expect(t0.equals(new Token(1, ADDRESS_ZERO, 18, 'symbol', 'name'))).toStrictEqual(true);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=currency.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"currency.test.js","sourceRoot":"","sources":["../../../../src/entities/currency.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEtC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,YAAY,GAAG,4CAA4C,CAAA;IACjE,MAAM,WAAW,GAAG,4CAA4C,CAAA;IAEhE,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;IACzC,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;IAExC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACzF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import invariant from 'tiny-invariant';
|
|
2
|
-
import { NativeCurrency } from './nativeCurrency';
|
|
3
|
-
import { WETH9 } from './weth9';
|
|
4
|
-
/**
|
|
5
|
-
* Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets
|
|
6
|
-
*/
|
|
7
|
-
export class Ether extends NativeCurrency {
|
|
8
|
-
constructor(chainId) {
|
|
9
|
-
super(chainId, 18, 'ETH', 'Ether');
|
|
10
|
-
}
|
|
11
|
-
get wrapped() {
|
|
12
|
-
const weth9 = WETH9[this.chainId];
|
|
13
|
-
invariant(!!weth9, 'WRAPPED');
|
|
14
|
-
return weth9;
|
|
15
|
-
}
|
|
16
|
-
static onChain(chainId) {
|
|
17
|
-
var _a;
|
|
18
|
-
return (_a = this._etherCache[chainId]) !== null && _a !== void 0 ? _a : (this._etherCache[chainId] = new Ether(chainId));
|
|
19
|
-
}
|
|
20
|
-
equals(other) {
|
|
21
|
-
return other.isNative && other.chainId === this.chainId;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
Ether._etherCache = {};
|
|
25
|
-
//# sourceMappingURL=ether.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ether.js","sourceRoot":"","sources":["../../../../src/entities/ether.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,cAAc;IACvC,YAAsB,OAAe;QACnC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,IAAW,OAAO;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAIM,MAAM,CAAC,OAAO,CAAC,OAAe;;QACnC,OAAO,MAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,mCAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IACtF,CAAC;IAEM,MAAM,CAAC,KAAe;QAC3B,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA;IACzD,CAAC;;AARc,iBAAW,GAAiC,EAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Ether } from './ether';
|
|
2
|
-
describe('Ether', () => {
|
|
3
|
-
it('static constructor uses cache', () => {
|
|
4
|
-
// eslint-disable-next-line no-self-compare
|
|
5
|
-
expect(Ether.onChain(1) === Ether.onChain(1)).toEqual(true);
|
|
6
|
-
});
|
|
7
|
-
it('caches once per chain ID', () => {
|
|
8
|
-
expect(Ether.onChain(1) !== Ether.onChain(2)).toEqual(true);
|
|
9
|
-
});
|
|
10
|
-
it('#equals returns false for diff chains', () => {
|
|
11
|
-
expect(Ether.onChain(1).equals(Ether.onChain(2))).toEqual(false);
|
|
12
|
-
});
|
|
13
|
-
it('#equals returns true for same chains', () => {
|
|
14
|
-
expect(Ether.onChain(1).equals(Ether.onChain(1))).toEqual(true);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=ether.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ether.test.js","sourceRoot":"","sources":["../../../../src/entities/ether.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,2CAA2C;QAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
import { Currency } from '../currency';
|
|
3
|
-
import { Token } from '../token';
|
|
4
|
-
import { Fraction } from './fraction';
|
|
5
|
-
import { BigintIsh, Rounding } from '../../constants';
|
|
6
|
-
export declare class CurrencyAmount<T extends Currency> extends Fraction {
|
|
7
|
-
readonly currency: T;
|
|
8
|
-
readonly decimalScale: JSBI;
|
|
9
|
-
/**
|
|
10
|
-
* Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
|
|
11
|
-
* @param currency the currency in the amount
|
|
12
|
-
* @param rawAmount the raw token or ether amount
|
|
13
|
-
*/
|
|
14
|
-
static fromRawAmount<T extends Currency>(currency: T, rawAmount: BigintIsh): CurrencyAmount<T>;
|
|
15
|
-
/**
|
|
16
|
-
* Construct a currency amount with a denominator that is not equal to 1
|
|
17
|
-
* @param currency the currency
|
|
18
|
-
* @param numerator the numerator of the fractional token amount
|
|
19
|
-
* @param denominator the denominator of the fractional token amount
|
|
20
|
-
*/
|
|
21
|
-
static fromFractionalAmount<T extends Currency>(currency: T, numerator: BigintIsh, denominator: BigintIsh): CurrencyAmount<T>;
|
|
22
|
-
protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh);
|
|
23
|
-
add(other: CurrencyAmount<T>): CurrencyAmount<T>;
|
|
24
|
-
subtract(other: CurrencyAmount<T>): CurrencyAmount<T>;
|
|
25
|
-
multiply(other: Fraction | BigintIsh): CurrencyAmount<T>;
|
|
26
|
-
divide(other: Fraction | BigintIsh): CurrencyAmount<T>;
|
|
27
|
-
toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
|
|
28
|
-
toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
|
|
29
|
-
toExact(format?: object): string;
|
|
30
|
-
get wrapped(): CurrencyAmount<Token>;
|
|
31
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import invariant from 'tiny-invariant';
|
|
2
|
-
import JSBI from 'jsbi';
|
|
3
|
-
import { Fraction } from './fraction';
|
|
4
|
-
import _Big from 'big.js';
|
|
5
|
-
import toFormat from 'toformat';
|
|
6
|
-
import { Rounding, MaxUint256 } from '../../constants';
|
|
7
|
-
const Big = toFormat(_Big);
|
|
8
|
-
export class CurrencyAmount extends Fraction {
|
|
9
|
-
/**
|
|
10
|
-
* Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
|
|
11
|
-
* @param currency the currency in the amount
|
|
12
|
-
* @param rawAmount the raw token or ether amount
|
|
13
|
-
*/
|
|
14
|
-
static fromRawAmount(currency, rawAmount) {
|
|
15
|
-
return new CurrencyAmount(currency, rawAmount);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Construct a currency amount with a denominator that is not equal to 1
|
|
19
|
-
* @param currency the currency
|
|
20
|
-
* @param numerator the numerator of the fractional token amount
|
|
21
|
-
* @param denominator the denominator of the fractional token amount
|
|
22
|
-
*/
|
|
23
|
-
static fromFractionalAmount(currency, numerator, denominator) {
|
|
24
|
-
return new CurrencyAmount(currency, numerator, denominator);
|
|
25
|
-
}
|
|
26
|
-
constructor(currency, numerator, denominator) {
|
|
27
|
-
super(numerator, denominator);
|
|
28
|
-
invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT');
|
|
29
|
-
this.currency = currency;
|
|
30
|
-
this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals));
|
|
31
|
-
}
|
|
32
|
-
add(other) {
|
|
33
|
-
invariant(this.currency.equals(other.currency), 'CURRENCY');
|
|
34
|
-
const added = super.add(other);
|
|
35
|
-
return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator);
|
|
36
|
-
}
|
|
37
|
-
subtract(other) {
|
|
38
|
-
invariant(this.currency.equals(other.currency), 'CURRENCY');
|
|
39
|
-
const subtracted = super.subtract(other);
|
|
40
|
-
return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator);
|
|
41
|
-
}
|
|
42
|
-
multiply(other) {
|
|
43
|
-
const multiplied = super.multiply(other);
|
|
44
|
-
return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator);
|
|
45
|
-
}
|
|
46
|
-
divide(other) {
|
|
47
|
-
const divided = super.divide(other);
|
|
48
|
-
return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator);
|
|
49
|
-
}
|
|
50
|
-
toSignificant(significantDigits = 6, format, rounding = Rounding.ROUND_DOWN) {
|
|
51
|
-
return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding);
|
|
52
|
-
}
|
|
53
|
-
toFixed(decimalPlaces = this.currency.decimals, format, rounding = Rounding.ROUND_DOWN) {
|
|
54
|
-
invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS');
|
|
55
|
-
return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding);
|
|
56
|
-
}
|
|
57
|
-
toExact(format = { groupSeparator: '' }) {
|
|
58
|
-
Big.DP = this.currency.decimals;
|
|
59
|
-
return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format);
|
|
60
|
-
}
|
|
61
|
-
get wrapped() {
|
|
62
|
-
if (this.currency.isToken)
|
|
63
|
-
return this;
|
|
64
|
-
return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=currencyAmount.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"currencyAmount.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/currencyAmount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
import { MaxUint256 } from '../../constants';
|
|
3
|
-
import { Ether } from '../ether';
|
|
4
|
-
import { Token } from '../token';
|
|
5
|
-
import { CurrencyAmount } from './currencyAmount';
|
|
6
|
-
import { Percent } from './percent';
|
|
7
|
-
describe('CurrencyAmount', () => {
|
|
8
|
-
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
9
|
-
describe('constructor', () => {
|
|
10
|
-
it('works', () => {
|
|
11
|
-
const token = new Token(1, ADDRESS_ONE, 18);
|
|
12
|
-
const amount = CurrencyAmount.fromRawAmount(token, 100);
|
|
13
|
-
expect(amount.quotient).toEqual(JSBI.BigInt(100));
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
describe('#quotient', () => {
|
|
17
|
-
it('returns the amount after multiplication', () => {
|
|
18
|
-
const token = new Token(1, ADDRESS_ONE, 18);
|
|
19
|
-
const amount = CurrencyAmount.fromRawAmount(token, 100).multiply(new Percent(15, 100));
|
|
20
|
-
expect(amount.quotient).toEqual(JSBI.BigInt(15));
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
describe('#ether', () => {
|
|
24
|
-
it('produces ether amount', () => {
|
|
25
|
-
const amount = CurrencyAmount.fromRawAmount(Ether.onChain(1), 100);
|
|
26
|
-
expect(amount.quotient).toEqual(JSBI.BigInt(100));
|
|
27
|
-
expect(amount.currency).toEqual(Ether.onChain(1));
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
it('token amount can be max uint256', () => {
|
|
31
|
-
const amount = CurrencyAmount.fromRawAmount(new Token(1, ADDRESS_ONE, 18), MaxUint256);
|
|
32
|
-
expect(amount.quotient).toEqual(MaxUint256);
|
|
33
|
-
});
|
|
34
|
-
it('token amount cannot exceed max uint256', () => {
|
|
35
|
-
expect(() => CurrencyAmount.fromRawAmount(new Token(1, ADDRESS_ONE, 18), JSBI.add(MaxUint256, JSBI.BigInt(1)))).toThrow('AMOUNT');
|
|
36
|
-
});
|
|
37
|
-
it('token amount quotient cannot exceed max uint256', () => {
|
|
38
|
-
expect(() => CurrencyAmount.fromFractionalAmount(new Token(1, ADDRESS_ONE, 18), JSBI.add(JSBI.multiply(MaxUint256, JSBI.BigInt(2)), JSBI.BigInt(2)), JSBI.BigInt(2))).toThrow('AMOUNT');
|
|
39
|
-
});
|
|
40
|
-
it('token amount numerator can be gt. uint256 if denominator is gt. 1', () => {
|
|
41
|
-
const amount = CurrencyAmount.fromFractionalAmount(new Token(1, ADDRESS_ONE, 18), JSBI.add(MaxUint256, JSBI.BigInt(2)), 2);
|
|
42
|
-
expect(amount.numerator).toEqual(JSBI.add(JSBI.BigInt(2), MaxUint256));
|
|
43
|
-
});
|
|
44
|
-
describe('#toFixed', () => {
|
|
45
|
-
it('throws for decimals > currency.decimals', () => {
|
|
46
|
-
const token = new Token(1, ADDRESS_ONE, 0);
|
|
47
|
-
const amount = CurrencyAmount.fromRawAmount(token, 1000);
|
|
48
|
-
expect(() => amount.toFixed(3)).toThrow('DECIMALS');
|
|
49
|
-
});
|
|
50
|
-
it('is correct for 0 decimals', () => {
|
|
51
|
-
const token = new Token(1, ADDRESS_ONE, 0);
|
|
52
|
-
const amount = CurrencyAmount.fromRawAmount(token, 123456);
|
|
53
|
-
expect(amount.toFixed(0)).toEqual('123456');
|
|
54
|
-
});
|
|
55
|
-
it('is correct for 18 decimals', () => {
|
|
56
|
-
const token = new Token(1, ADDRESS_ONE, 18);
|
|
57
|
-
const amount = CurrencyAmount.fromRawAmount(token, 1e15);
|
|
58
|
-
expect(amount.toFixed(9)).toEqual('0.001000000');
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('#toSignificant', () => {
|
|
62
|
-
it('does not throw for sig figs > currency.decimals', () => {
|
|
63
|
-
const token = new Token(1, ADDRESS_ONE, 0);
|
|
64
|
-
const amount = CurrencyAmount.fromRawAmount(token, 1000);
|
|
65
|
-
expect(amount.toSignificant(3)).toEqual('1000');
|
|
66
|
-
});
|
|
67
|
-
it('is correct for 0 decimals', () => {
|
|
68
|
-
const token = new Token(1, ADDRESS_ONE, 0);
|
|
69
|
-
const amount = CurrencyAmount.fromRawAmount(token, 123456);
|
|
70
|
-
expect(amount.toSignificant(4)).toEqual('123400');
|
|
71
|
-
});
|
|
72
|
-
it('is correct for 18 decimals', () => {
|
|
73
|
-
const token = new Token(1, ADDRESS_ONE, 18);
|
|
74
|
-
const amount = CurrencyAmount.fromRawAmount(token, 1e15);
|
|
75
|
-
expect(amount.toSignificant(9)).toEqual('0.001');
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('#toExact', () => {
|
|
79
|
-
it('does not throw for sig figs > currency.decimals', () => {
|
|
80
|
-
const token = new Token(1, ADDRESS_ONE, 0);
|
|
81
|
-
const amount = CurrencyAmount.fromRawAmount(token, 1000);
|
|
82
|
-
expect(amount.toExact()).toEqual('1000');
|
|
83
|
-
});
|
|
84
|
-
it('is correct for 0 decimals', () => {
|
|
85
|
-
const token = new Token(1, ADDRESS_ONE, 0);
|
|
86
|
-
const amount = CurrencyAmount.fromRawAmount(token, 123456);
|
|
87
|
-
expect(amount.toExact()).toEqual('123456');
|
|
88
|
-
});
|
|
89
|
-
it('is correct for 18 decimals', () => {
|
|
90
|
-
const token = new Token(1, ADDRESS_ONE, 18);
|
|
91
|
-
const amount = CurrencyAmount.fromRawAmount(token, 123e13);
|
|
92
|
-
expect(amount.toExact()).toEqual('0.00123');
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
//# sourceMappingURL=currencyAmount.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"currencyAmount.test.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/currencyAmount.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
import invariant from 'tiny-invariant';
|
|
3
|
-
import _Decimal from 'decimal.js-light';
|
|
4
|
-
import _Big from 'big.js';
|
|
5
|
-
import toFormat from 'toformat';
|
|
6
|
-
import { Rounding } from '../../constants';
|
|
7
|
-
const Decimal = toFormat(_Decimal);
|
|
8
|
-
const Big = toFormat(_Big);
|
|
9
|
-
const toSignificantRounding = {
|
|
10
|
-
[Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,
|
|
11
|
-
[Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,
|
|
12
|
-
[Rounding.ROUND_UP]: Decimal.ROUND_UP,
|
|
13
|
-
};
|
|
14
|
-
const toFixedRounding = {
|
|
15
|
-
[Rounding.ROUND_DOWN]: 0 /* RoundingMode.RoundDown */,
|
|
16
|
-
[Rounding.ROUND_HALF_UP]: 1 /* RoundingMode.RoundHalfUp */,
|
|
17
|
-
[Rounding.ROUND_UP]: 3 /* RoundingMode.RoundUp */,
|
|
18
|
-
};
|
|
19
|
-
export class Fraction {
|
|
20
|
-
constructor(numerator, denominator = JSBI.BigInt(1)) {
|
|
21
|
-
this.numerator = JSBI.BigInt(numerator);
|
|
22
|
-
this.denominator = JSBI.BigInt(denominator);
|
|
23
|
-
}
|
|
24
|
-
static tryParseFraction(fractionish) {
|
|
25
|
-
if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')
|
|
26
|
-
return new Fraction(fractionish);
|
|
27
|
-
if ('numerator' in fractionish && 'denominator' in fractionish)
|
|
28
|
-
return fractionish;
|
|
29
|
-
throw new Error('Could not parse fraction');
|
|
30
|
-
}
|
|
31
|
-
// performs floor division
|
|
32
|
-
get quotient() {
|
|
33
|
-
return JSBI.divide(this.numerator, this.denominator);
|
|
34
|
-
}
|
|
35
|
-
// remainder after floor division
|
|
36
|
-
get remainder() {
|
|
37
|
-
return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator);
|
|
38
|
-
}
|
|
39
|
-
invert() {
|
|
40
|
-
return new Fraction(this.denominator, this.numerator);
|
|
41
|
-
}
|
|
42
|
-
add(other) {
|
|
43
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
44
|
-
if (JSBI.equal(this.denominator, otherParsed.denominator)) {
|
|
45
|
-
return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator);
|
|
46
|
-
}
|
|
47
|
-
return new Fraction(JSBI.add(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));
|
|
48
|
-
}
|
|
49
|
-
subtract(other) {
|
|
50
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
51
|
-
if (JSBI.equal(this.denominator, otherParsed.denominator)) {
|
|
52
|
-
return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator);
|
|
53
|
-
}
|
|
54
|
-
return new Fraction(JSBI.subtract(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));
|
|
55
|
-
}
|
|
56
|
-
lessThan(other) {
|
|
57
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
58
|
-
return JSBI.lessThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
|
|
59
|
-
}
|
|
60
|
-
equalTo(other) {
|
|
61
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
62
|
-
return JSBI.equal(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
|
|
63
|
-
}
|
|
64
|
-
greaterThan(other) {
|
|
65
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
66
|
-
return JSBI.greaterThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));
|
|
67
|
-
}
|
|
68
|
-
multiply(other) {
|
|
69
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
70
|
-
return new Fraction(JSBI.multiply(this.numerator, otherParsed.numerator), JSBI.multiply(this.denominator, otherParsed.denominator));
|
|
71
|
-
}
|
|
72
|
-
divide(other) {
|
|
73
|
-
const otherParsed = Fraction.tryParseFraction(other);
|
|
74
|
-
return new Fraction(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(this.denominator, otherParsed.numerator));
|
|
75
|
-
}
|
|
76
|
-
toSignificant(significantDigits, format = { groupSeparator: '' }, rounding = Rounding.ROUND_HALF_UP) {
|
|
77
|
-
invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`);
|
|
78
|
-
invariant(significantDigits > 0, `${significantDigits} is not positive.`);
|
|
79
|
-
Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] });
|
|
80
|
-
const quotient = new Decimal(this.numerator.toString())
|
|
81
|
-
.div(this.denominator.toString())
|
|
82
|
-
.toSignificantDigits(significantDigits);
|
|
83
|
-
return quotient.toFormat(quotient.decimalPlaces(), format);
|
|
84
|
-
}
|
|
85
|
-
toFixed(decimalPlaces, format = { groupSeparator: '' }, rounding = Rounding.ROUND_HALF_UP) {
|
|
86
|
-
invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`);
|
|
87
|
-
invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`);
|
|
88
|
-
Big.DP = decimalPlaces;
|
|
89
|
-
Big.RM = toFixedRounding[rounding];
|
|
90
|
-
return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Helper method for converting any super class back to a fraction
|
|
94
|
-
*/
|
|
95
|
-
get asFraction() {
|
|
96
|
-
return new Fraction(this.numerator, this.denominator);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=fraction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fraction.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/fraction.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,QAAQ,MAAM,kBAAkB,CAAA;AACvC,OAAO,IAAsB,MAAM,QAAQ,CAAA;AAC3C,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAa,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE1B,MAAM,qBAAqB,GAAG;IAC5B,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU;IACzC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa;IAC/C,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ;CACtC,CAAA;AAED,MAAM,eAAe,GAAG;IACtB,CAAC,QAAQ,CAAC,UAAU,CAAC,gCAAwB;IAC7C,CAAC,QAAQ,CAAC,aAAa,CAAC,kCAA0B;IAClD,CAAC,QAAQ,CAAC,QAAQ,CAAC,8BAAsB;CAC1C,CAAA;AAED,MAAM,OAAO,QAAQ;IAInB,YAAmB,SAAoB,EAAE,cAAyB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC7C,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,WAAiC;QAC/D,IAAI,WAAW,YAAY,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ;YACnG,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAA;QAElC,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,WAAW;YAAE,OAAO,WAAW,CAAA;QAClF,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,0BAA0B;IAC1B,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACtD,CAAC;IAED,iCAAiC;IACjC,IAAW,SAAS;QAClB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACzF,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC;IAEM,GAAG,CAAC,KAA2B;QACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE;YACzD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;SACvF;QACD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CACvD,EACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CACzD,CAAA;IACH,CAAC;IAEM,QAAQ,CAAC,KAA2B;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE;YACzD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;SAC5F;QACD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CACvD,EACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CACzD,CAAA;IACH,CAAC;IAEM,QAAQ,CAAC,KAA2B;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CACvD,CAAA;IACH,CAAC;IAEM,OAAO,CAAC,KAA2B;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,KAAK,CACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CACvD,CAAA;IACH,CAAC;IAEM,WAAW,CAAC,KAA2B;QAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,WAAW,CACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CACvD,CAAA;IACH,CAAC;IAEM,QAAQ,CAAC,KAA2B;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,EACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CACzD,CAAA;IACH,CAAC;IAEM,MAAM,CAAC,KAA2B;QACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CACvD,CAAA;IACH,CAAC;IAEM,aAAa,CAClB,iBAAyB,EACzB,SAAiB,EAAE,cAAc,EAAE,EAAE,EAAE,EACvC,WAAqB,QAAQ,CAAC,aAAa;QAE3C,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,GAAG,iBAAiB,qBAAqB,CAAC,CAAA;QACzF,SAAS,CAAC,iBAAiB,GAAG,CAAC,EAAE,GAAG,iBAAiB,mBAAmB,CAAC,CAAA;QAEzE,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5F,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aACpD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;aAChC,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;QACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;IAEM,OAAO,CACZ,aAAqB,EACrB,SAAiB,EAAE,cAAc,EAAE,EAAE,EAAE,EACvC,WAAqB,QAAQ,CAAC,aAAa;QAE3C,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,qBAAqB,CAAC,CAAA;QACjF,SAAS,CAAC,aAAa,IAAI,CAAC,EAAE,GAAG,aAAa,eAAe,CAAC,CAAA;QAE9D,GAAG,CAAC,EAAE,GAAG,aAAa,CAAA;QACtB,GAAG,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;QAClC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC5G,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACvD,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import JSBI from 'jsbi';
|
|
2
|
-
import { Fraction } from './fraction';
|
|
3
|
-
describe('Fraction', () => {
|
|
4
|
-
describe('#quotient', () => {
|
|
5
|
-
it('floor division', () => {
|
|
6
|
-
expect(new Fraction(JSBI.BigInt(8), JSBI.BigInt(3)).quotient).toEqual(JSBI.BigInt(2)); // one below
|
|
7
|
-
expect(new Fraction(JSBI.BigInt(12), JSBI.BigInt(4)).quotient).toEqual(JSBI.BigInt(3)); // exact
|
|
8
|
-
expect(new Fraction(JSBI.BigInt(16), JSBI.BigInt(5)).quotient).toEqual(JSBI.BigInt(3)); // one above
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
describe('#remainder', () => {
|
|
12
|
-
it('returns fraction after divison', () => {
|
|
13
|
-
expect(new Fraction(JSBI.BigInt(8), JSBI.BigInt(3)).remainder).toEqual(new Fraction(JSBI.BigInt(2), JSBI.BigInt(3)));
|
|
14
|
-
expect(new Fraction(JSBI.BigInt(12), JSBI.BigInt(4)).remainder).toEqual(new Fraction(JSBI.BigInt(0), JSBI.BigInt(4)));
|
|
15
|
-
expect(new Fraction(JSBI.BigInt(16), JSBI.BigInt(5)).remainder).toEqual(new Fraction(JSBI.BigInt(1), JSBI.BigInt(5)));
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
describe('#invert', () => {
|
|
19
|
-
it('flips num and denom', () => {
|
|
20
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(10)).invert().numerator).toEqual(JSBI.BigInt(10));
|
|
21
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(10)).invert().denominator).toEqual(JSBI.BigInt(5));
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe('#add', () => {
|
|
25
|
-
it('multiples denoms and adds nums', () => {
|
|
26
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).add(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(52), JSBI.BigInt(120)));
|
|
27
|
-
});
|
|
28
|
-
it('same denom', () => {
|
|
29
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(5)).add(new Fraction(JSBI.BigInt(2), JSBI.BigInt(5)))).toEqual(new Fraction(JSBI.BigInt(3), JSBI.BigInt(5)));
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
describe('#subtract', () => {
|
|
33
|
-
it('multiples denoms and subtracts nums', () => {
|
|
34
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).subtract(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(-28), JSBI.BigInt(120)));
|
|
35
|
-
});
|
|
36
|
-
it('same denom', () => {
|
|
37
|
-
expect(new Fraction(JSBI.BigInt(3), JSBI.BigInt(5)).subtract(new Fraction(JSBI.BigInt(2), JSBI.BigInt(5)))).toEqual(new Fraction(JSBI.BigInt(1), JSBI.BigInt(5)));
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('#lessThan', () => {
|
|
41
|
-
it('correct', () => {
|
|
42
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).lessThan(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(true);
|
|
43
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(3)).lessThan(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(false);
|
|
44
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(12)).lessThan(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(false);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
describe('#equalTo', () => {
|
|
48
|
-
it('correct', () => {
|
|
49
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).equalTo(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(false);
|
|
50
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(3)).equalTo(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(true);
|
|
51
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(12)).equalTo(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(false);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('#greaterThan', () => {
|
|
55
|
-
it('correct', () => {
|
|
56
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).greaterThan(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(false);
|
|
57
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(3)).greaterThan(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(false);
|
|
58
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(12)).greaterThan(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toBe(true);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('#multiplty', () => {
|
|
62
|
-
it('correct', () => {
|
|
63
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).multiply(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(4), JSBI.BigInt(120)));
|
|
64
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(3)).multiply(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(4), JSBI.BigInt(36)));
|
|
65
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(12)).multiply(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(20), JSBI.BigInt(144)));
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe('#divide', () => {
|
|
69
|
-
it('correct', () => {
|
|
70
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(10)).divide(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(12), JSBI.BigInt(40)));
|
|
71
|
-
expect(new Fraction(JSBI.BigInt(1), JSBI.BigInt(3)).divide(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(12), JSBI.BigInt(12)));
|
|
72
|
-
expect(new Fraction(JSBI.BigInt(5), JSBI.BigInt(12)).divide(new Fraction(JSBI.BigInt(4), JSBI.BigInt(12)))).toEqual(new Fraction(JSBI.BigInt(60), JSBI.BigInt(48)));
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
describe('#asFraction', () => {
|
|
76
|
-
it('returns an equivalent but not the same reference fraction', () => {
|
|
77
|
-
const f = new Fraction(1, 2);
|
|
78
|
-
expect(f.asFraction).toEqual(f);
|
|
79
|
-
expect(f === f.asFraction).toEqual(false);
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=fraction.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fraction.test.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/fraction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/fractions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BigintIsh, Rounding } from '../../constants';
|
|
2
|
-
import { Fraction } from './fraction';
|
|
3
|
-
export declare class Percent extends Fraction {
|
|
4
|
-
/**
|
|
5
|
-
* This boolean prevents a fraction from being interpreted as a Percent
|
|
6
|
-
*/
|
|
7
|
-
readonly isPercent: true;
|
|
8
|
-
add(other: Fraction | BigintIsh): Percent;
|
|
9
|
-
subtract(other: Fraction | BigintIsh): Percent;
|
|
10
|
-
multiply(other: Fraction | BigintIsh): Percent;
|
|
11
|
-
divide(other: Fraction | BigintIsh): Percent;
|
|
12
|
-
toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
|
|
13
|
-
toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
|
|
14
|
-
}
|