solar-scores
Version:
Compute scores for solar decathlon competition - Cali 2015
40 lines (31 loc) • 1.39 kB
JavaScript
;
var scores = require('..');
var excessProduction = [
{A: 30, epoch: new Date('2015-12-06 11:00:00 GMT-0500') },
{A: 50, epoch: new Date('2015-12-06 12:00:00 GMT-0500') },
{A: 60, epoch: new Date('2015-12-06 12:00:00 GMT-0500') }
];
var gridConsumption = [
{A: 30, epoch: new Date('2015-12-06 11:00:00 GMT-0500') },
{A: 50 + 20/9/2, epoch: new Date('2015-12-06 12:00:00 GMT-0500') },
{A: 60, epoch: new Date('2015-12-06 12:00:00 GMT-0500') }
];
describe('Energy balance tests', function() {
it('Simple case', function() {
var energyBalance = new scores.EnergyBalance({
doubleScoringParams: [-20, 0, 20, 100]
});
var asOfDate = new Date('2015-12-07 12:00:00 GMT-0500');
var endDate = new Date('2015-12-18 12:00:00 GMT-0500');
energyBalance.setExcessProduction(excessProduction, 'A');
energyBalance.setGridConsumption(gridConsumption, 'A');
var score = energyBalance.getScore(new Date('2015-12-06 12:00:00 GMT-0500'));
// score.fraction.should.approximately(0.5, 0.0001);
score.fraction.should.approximately(1, 0.0001);
score.max.should.approximately(60, 0.001);
score = energyBalance.getScore(asOfDate);
score.points.should.equal(0);
score = energyBalance.getScore(endDate);
score.points.should.equal(60);
});
});