Skip to content

Commit

Permalink
adapt how percentages are calculated
Browse files Browse the repository at this point in the history
  • Loading branch information
selaux committed Mar 9, 2014
1 parent 741a9fb commit 065331d
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 11 deletions.
11 changes: 5 additions & 6 deletions lib/modules/miners/bfgminer.js
Expand Up @@ -125,14 +125,14 @@ module.exports = Module.extend({
returnedHardwareErrorRate,
hardwareErrorRate,
avgHashrate,
totalShares;
totalDifficulty;

if (response.SUMMARY && response.SUMMARY.length > 0) {
calculatedHardwareErrorRate = (response.SUMMARY[0]['Hardware Errors'] / response.SUMMARY[0].Accepted) * 100;
returnedHardwareErrorRate = response.SUMMARY[0]['Device Hardware%'];
hardwareErrorRate = returnedHardwareErrorRate !== undefined ? returnedHardwareErrorRate : calculatedHardwareErrorRate;
avgHashrate = response.SUMMARY[0]['GHS av'] ? response.SUMMARY[0]['GHS av'] * 1000 : response.SUMMARY[0]['MHS av'];
totalShares = response.SUMMARY[0].Accepted + response.SUMMARY[0].Rejected + response.SUMMARY[0].Stale + response.SUMMARY[0].Discarded;
totalDifficulty = response.SUMMARY[0]['Difficulty Accepted'] + response.SUMMARY[0]['Difficulty Rejected'] + response.SUMMARY[0]['Difficulty Stale'];

data = _.extend({}, defaults, {
connected: true,
Expand All @@ -144,12 +144,11 @@ module.exports = Module.extend({
shares: {
accepted: response.SUMMARY[0].Accepted,
rejected: response.SUMMARY[0].Rejected,
rejectedPercentage: 100 * response.SUMMARY[0].Rejected / totalShares,
rejectedPercentage: totalDifficulty ? 100 * response.SUMMARY[0]['Difficulty Rejected'] / totalDifficulty : 0,
best: response.SUMMARY[0]['Best Share'],
stale: response.SUMMARY[0].Stale,
stalePercentage: 100 * response.SUMMARY[0].Stale / totalShares,
discarded: response.SUMMARY[0].Discarded,
discardedPercentage: 100 * response.SUMMARY[0].Discarded / totalShares
stalePercentage: totalDifficulty ? 100 * response.SUMMARY[0]['Difficulty Stale'] / totalDifficulty : 0,
discarded: response.SUMMARY[0].Discarded
},
difficulty: {
accepted: response.SUMMARY[0]['Difficulty Accepted'],
Expand Down
2 changes: 1 addition & 1 deletion templates/miner.hbs
Expand Up @@ -31,7 +31,7 @@
<dt>Stale Shares:</dt>
<dd>{{number shares.stale}} ({{number shares.stalePercentage precision="2"}}%)</dd>
<dt>Discarded Shares:</dt>
<dd>{{number shares.discarded}} ({{number shares.discardedPercentage precision="2"}}%)</dd>
<dd>{{number shares.discarded}}</dd>
</dl>
<dl class="dl-horizontal col-xs-12 col-md-4">
<dt>Difficulty Accepted:</dt>
Expand Down
25 changes: 21 additions & 4 deletions test/specs/lib/modules/miners/bfgminerSpec.js
Expand Up @@ -299,12 +299,11 @@ describe('modules/miners/bfgminer', function () {
shares: {
accepted: 20,
rejected: 14,
rejectedPercentage: (14 / 55) * 100,
rejectedPercentage: 100 * 3.0 / 9.0,
best: 1,
stale: 16,
stalePercentage: (16 / 55) * 100,
discarded: 5,
discardedPercentage: (5 / 55) * 100
stalePercentage: 100 * 4.0 / 9.0,
discarded: 5
},
difficulty: {
accepted: 2.0,
Expand Down Expand Up @@ -341,6 +340,24 @@ describe('modules/miners/bfgminer', function () {
}));
});

it('should correctly calculate percentages if no work has been done yet', function () {
var summary = _.extend({}, summaryResponse.SUMMARY[0], { 'Difficulty Accepted': 0, 'Difficulty Rejected': 0, 'Difficulty Stale': 0 }),
response = _.extend({}, summaryResponse, { SUMMARY: [ summary ] }),
bfgAdapter = new BfgAdapter({}, config);

expect(bfgAdapter.handleSummaryResponse(response)).to.deep.equal(_.extend({}, parsedResponse, {
difficulty: {
accepted: 0,
rejected: 0,
stale: 0
},
shares: _.extend({}, parsedResponse.shares, {
rejectedPercentage: 0,
stalePercentage: 0
})
}));
});

it('should handle a response not containing the SUMMARY property', function () {
var bfgAdapter = new BfgAdapter({}, config);
expect(bfgAdapter.handleSummaryResponse({})).to.deep.equal({
Expand Down

0 comments on commit 065331d

Please sign in to comment.