mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-21 04:35:49 +00:00
[TEST] add missing testcases for interest bearing currencies
- `get_interest_at` by providing a Date object - `get_interest_at` for a Currency without interest
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var utils = require('./testutils');
|
var utils = require('./testutils');
|
||||||
var currency = utils.load_module('currency').Currency;
|
var currency = utils.load_module('currency').Currency;
|
||||||
|
var timeUtil = utils.load_module('utils').time;
|
||||||
|
|
||||||
describe('Currency', function() {
|
describe('Currency', function() {
|
||||||
describe('json_rewrite', function() {
|
describe('json_rewrite', function() {
|
||||||
@@ -217,14 +218,16 @@ describe('Currency', function() {
|
|||||||
return +(Math.round(num + "e+"+precision) + "e-"+precision);
|
return +(Math.round(num + "e+"+precision) + "e-"+precision);
|
||||||
}
|
}
|
||||||
describe('get_interest_at', function() {
|
describe('get_interest_at', function() {
|
||||||
it('returns demurred value for demurrage currency', function() {
|
it('should return demurred value for demurrage currency', function() {
|
||||||
var cur = currency.from_json('015841551A748AD2C1F76FF6ECB0CCCD00000000');
|
var cur = currency.from_json('015841551A748AD2C1F76FF6ECB0CCCD00000000');
|
||||||
|
|
||||||
// At start, no demurrage should occur
|
// At start, no demurrage should occur
|
||||||
assert.equal(1, cur.get_interest_at(443845330));
|
assert.equal(1, cur.get_interest_at(443845330));
|
||||||
|
assert.equal(1, precision(cur.get_interest_at(new Date(timeUtil.fromRipple(443845330))), 14));
|
||||||
|
|
||||||
// After one year, 0.5% should have occurred
|
// After one year, 0.5% should have occurred
|
||||||
assert.equal(0.995, precision(cur.get_interest_at(443845330 + 31536000), 14));
|
assert.equal(0.995, precision(cur.get_interest_at(443845330 + 31536000), 14));
|
||||||
|
assert.equal(0.995, precision(cur.get_interest_at(new Date(timeUtil.fromRipple(443845330 + 31536000))), 14));
|
||||||
|
|
||||||
// After one demurrage period, 1/e should have occurred
|
// After one demurrage period, 1/e should have occurred
|
||||||
assert.equal(1/Math.E, cur.get_interest_at(443845330 + 6291418827.05));
|
assert.equal(1/Math.E, cur.get_interest_at(443845330 + 6291418827.05));
|
||||||
@@ -235,6 +238,11 @@ describe('Currency', function() {
|
|||||||
// One demurrage period before start, rate should be e
|
// One demurrage period before start, rate should be e
|
||||||
assert.equal(Math.E, cur.get_interest_at(443845330 - 6291418827.05));
|
assert.equal(Math.E, cur.get_interest_at(443845330 - 6291418827.05));
|
||||||
});
|
});
|
||||||
|
it('should return 0 for currency without interest', function() {
|
||||||
|
var cur = currency.from_json('USD - US Dollar');
|
||||||
|
assert.equal(0, cur.get_interest_at(443845330));
|
||||||
|
assert.equal(0, cur.get_interest_at(443845330 + 31536000));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
describe('get_iso', function() {
|
describe('get_iso', function() {
|
||||||
it('should get "XRP" iso_code', function() {
|
it('should get "XRP" iso_code', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user