const _ = require('lodash') exports.calculateAvgScore = (...scores) => { return avgScore = scores.reduce((total, score) => total += score) / scores.length; } exports.calculateScoreRange = (min, max, multiplier, regionVal, sLowVal, sHighVal) => { console.log('scores.calculateScoreRange:', min, max, multiplier, regionVal, sLowVal, sHighVal) // return full score when in range if (regionVal >= sLowVal && regionVal <= sHighVal) return 10; // choose value with smallest distance let sVal = Math.abs(regionVal - sLowVal) < Math.abs(regionVal - sHighVal) ? sLowVal : sHighVal; return this.calculateScore(min, max, multiplier, regionVal, sVal); } exports.calculateScore = (min, max, multiplier, regionVal, searchVal) => { let score = 1 - (Math.abs(searchVal - regionVal) / (max - min) * multiplier); return score <= 0 ? 0 : score * 10; }