UNPKG

solar-scores

Version:

Compute scores for solar decathlon competition - Cali 2015

40 lines (31 loc) 1.39 kB
'use strict'; 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); }); });