network.js icon indicating copy to clipboard operation
network.js copied to clipboard

Average is not calculated correctly

Open nmaves opened this issue 9 years ago • 0 comments

It appears that the average parameter in the on 'progress' event is not correctly being calculated.

Here is our test code.

const getAvg = (values) => {
    return values.reduce(function (total, value) {
            return total + value
        }) / values.length
}

const round = (value) => {
    return Math.round(value * megaBits)
}
    handleBandwidthCheck = () => {

        this.setState({ completed: false, inProgress: false }) // reset speed so it's removed from the ui

        this.progress(20) // kick off the progress bar

        const instantSpeeds = []

        this.network.download
            .on('start', () => {
                this.setState({ inProgress: true })
            })
            .on('end', () => {
                this.setState({ average: round(getAvg(instantSpeeds)), completed: true })
            })
            .on('progress', (average, instant) => {
                instantSpeeds.push(instant)  // their average seems broken so we are using our own

                console.log('avg, inst', round(getAvg(instantSpeeds)), round(average), round(instant))
                this.setState({ average: round(getAvg(instantSpeeds)) })

            })

        this.network.download.start()
    }

And here are the results.

avg(ours), avg(yours), instant 3 3 3
avg(ours), avg(yours), instant 4 4 5
avg(ours), avg(yours), instant 5 5 8
avg(ours), avg(yours), instant 6 6 8
avg(ours), avg(yours), instant 6 6 5
avg(ours), avg(yours), instant 6 6 11
avg(ours), avg(yours), instant 8 8 16
avg(ours), avg(yours), instant 9 8 16
avg(ours), avg(yours), instant 10 10 23
avg(ours), avg(yours), instant 12 12 29
avg(ours), avg(yours), instant 13 13 29
avg(ours), avg(yours), instant 14 14 24
avg(ours), avg(yours), instant 16 16 40
avg(ours), avg(yours), instant 17 17 32
avg(ours), avg(yours), instant 19 19 51
avg(ours), avg(yours), instant 21 21 51
avg(ours), avg(yours), instant 22 22 42
avg(ours), avg(yours), instant 24 24 52
avg(ours), avg(yours), instant 25 25 55
avg(ours), avg(yours), instant 27 27 64
avg(ours), avg(yours), instant 29 29 77
avg(ours), avg(yours), instant 32 32 89
avg(ours), avg(yours), instant 34 34 77
avg(ours), avg(yours), instant 36 36 88
avg(ours), avg(yours), instant 38 39 99
avg(ours), avg(yours), instant 42 42 127
avg(ours), avg(yours), instant 45 45 120
avg(ours), avg(yours), instant 48 48 132
avg(ours), avg(yours), instant 50 50 132
avg(ours), avg(yours), instant 53 53 129
avg(ours), avg(yours), instant 55 55 119
avg(ours), avg(yours), instant 57 57 123
avg(ours), avg(yours), instant 60 60 147
avg(ours), avg(yours), instant 62 139 139
avg(ours), avg(yours), instant 64 129 119
avg(ours), avg(yours), instant 65 129 129
avg(ours), avg(yours), instant 67 128 127
avg(ours), avg(yours), instant 68 657 126
avg(ours), avg(yours), instant 70 389 126
avg(ours), avg(yours), instant 71 299 129
avg(ours), avg(yours), instant 73 255 129
avg(ours), avg(yours), instant 74 228 120
avg(ours), avg(yours), instant 75 212 130
avg(ours), avg(yours), instant 76 200 128
avg(ours), avg(yours), instant 77 190 121
avg(ours), avg(yours), instant 78 183 130
avg(ours), avg(yours), instant 79 177 120
avg(ours), avg(yours), instant 80 172 121
avg(ours), avg(yours), instant 83 174 203
avg(ours), avg(yours), instant 84 136 136
avg(ours), avg(yours), instant 84 128 120
avg(ours), avg(yours), instant 85 391 130
avg(ours), avg(yours), instant 86 253 122
avg(ours), avg(yours), instant 87 211 127
avg(ours), avg(yours), instant 87 788 125
avg(ours), avg(yours), instant 88 455 135
avg(ours), avg(yours), instant 89 346 133
avg(ours), avg(yours), instant 89 289 122
avg(ours), avg(yours), instant 90 257 130
avg(ours), avg(yours), instant 91 235 125
avg(ours), avg(yours), instant 91 219 126
avg(ours), avg(yours), instant 92 207 122
avg(ours), avg(yours), instant 92 196 116
avg(ours), avg(yours), instant 93 190 139
avg(ours), avg(yours), instant 94 185 137
avg(ours), avg(yours), instant 94 132 132
avg(ours), avg(yours), instant 95 262 125
avg(ours), avg(yours), instant 95 194 127
avg(ours), avg(yours), instant 95 522 113
avg(ours), avg(yours), instant 96 323 129
avg(ours), avg(yours), instant 96 257 133
avg(ours), avg(yours), instant 97 926 129
avg(ours), avg(yours), instant 97 528 140
avg(ours), avg(yours), instant 98 393 128
avg(ours), avg(yours), instant 98 324 124
avg(ours), avg(yours), instant 98 283 122
avg(ours), avg(yours), instant 99 257 125
avg(ours), avg(yours), instant 99 239 129
avg(ours), avg(yours), instant 99 225 127
avg(ours), avg(yours), instant 100 213 119
avg(ours), avg(yours), instant 100 206 146
avg(ours), avg(yours), instant 101 133 133
avg(ours), avg(yours), instant 101 129 124
avg(ours), avg(yours), instant 101 391 125
avg(ours), avg(yours), instant 102 525 130
avg(ours), avg(yours), instant 102 322 128
avg(ours), avg(yours), instant 102 253 122
avg(ours), avg(yours), instant 102 221 123
avg(ours), avg(yours), instant 103 1042 121
avg(ours), avg(yours), instant 103 574 129
avg(ours), avg(yours), instant 103 419 119

nmaves avatar Oct 21 '16 17:10 nmaves