traffic-fine-calculator
Version:
A leightweight JavaScript traffic fine calculator
85 lines (66 loc) • 2.14 kB
JavaScript
var fines = require('../fine_dictionary').distance,
distance = function (args) {
if (args.speed <= 80) {
if (args.distance <= 0.5) {
if (args.damage) {
return fines.fine2;
} else if (args.thread) {
return fines.fine1;
} else {
return fines.fine0;
}
} else { // distance > 0.5
return fines.no_fine;
}
} else if (args.speed > 80 && args.speed <= 130) {
if (args.distance <= 0.1) {
if (args.speed <= 100) {
return fines.fine8;
} else { // > 100 km/h
return fines.fine15;
}
}
if (args.distance <= 0.2) {
if (args.speed <= 100) {
return fines.fine7;
} else { // > 100 km/h
return fines.fine14;
}
}
if (args.distance <= 0.3) {
if (args.speed <= 100) {
return fines.fine6;
} else { // > 100 km/h
return fines.fine13;
}
}
if (args.distance <= 0.4) {
return fines.fine5;
}
if (args.distance <= 0.5) {
return fines.fine2;
}
else { // distance > 0.5
return fines.no_fine;
}
} else if (args.speed > 130) {
if (args.distance <= 0.1) {
return fines.fine12;
}
if (args.distance <= 0.2) {
return fines.fine11;
}
if (args.distance <= 0.3) {
return fines.fine10;
}
if (args.distance <= 0.4) {
return fines.fine9;
}
if (args.distance <= 0.5) {
return fines.fine5;
}
} else {
throw Error('Invalid arguments');
}
};
module.exports = distance;