diff --git a/src/assets/calculator.js b/src/assets/calculator.js index de81fe3..e42b475 100644 --- a/src/assets/calculator.js +++ b/src/assets/calculator.js @@ -1,15 +1,17 @@ const MINIMUM_BASE_AREA = 0.5; -const MINIMUM_AREA_THREE_RATS = 1.8; -const AREA_PER_ADDITIONAL_RAT = 0.2; +const MINIMUM_AREA_THREE_RATS = 1.5; +const AREA_PER_ADDITIONAL_RAT = 0.25; const MAXIMUM_FALL_HEIGHT = 0.5; -const MINIMUM_LENGTH = 0.8; +const MINIMUM_LENGTH_LONG_SIDE = 0.8; +const MINIMUM_LENGTH_SHORT_SIDE = 0.5; const MINIMUM_FLOOR_HEIGHT = 0.3; const FAILED_BASE_AREA = "base_area"; const FAILED_OVERALL_AREA = "overall_area"; const FAILED_FALL_HEIGHT = "fall_height"; const FAILED_NUM_RATS = "num_rats"; -const FAILED_LENGTH = "length"; +const FAILED_MINIMUM_LENGTH_LONG_SIDE = "length_long_side"; +const FAILED_MINIMUM_LENGTH_SHORT_SIDE= "length_short_side"; const FAILED_FLOOR_HEIGHT = "floor_height" const FAIL_CRITERIA = { @@ -18,7 +20,8 @@ const FAIL_CRITERIA = { [FAILED_FALL_HEIGHT]: `Die mögliche Fallhöhe darf nicht mehr als ${(MAXIMUM_FALL_HEIGHT * 100).toFixed(0)}cm betragen.`, [FAILED_FLOOR_HEIGHT]: `Der Mindestabstand zwischen Ebenen muss ${(MINIMUM_FLOOR_HEIGHT * 100).toFixed(0)}cm betragen.`, [FAILED_NUM_RATS]: "Es müssen mindestens 3 Ratten zusammenleben, Paarhaltung ist nicht artgerecht.", - [FAILED_LENGTH]: `Eine Seite des Käfig muss mindestens ${(MINIMUM_LENGTH * 100).toFixed(0)}cm lang sein um Rennen zu ermöglichen.`, + [FAILED_MINIMUM_LENGTH_LONG_SIDE]: `Die lange Seite des Käfig muss mindestens ${(MINIMUM_LENGTH_LONG_SIDE * 100).toFixed(0)}cm lang sein um Rennen zu ermöglichen.`, + [FAILED_MINIMUM_LENGTH_SHORT_SIDE]: `Die kurze Seite des Käfig muss mindestens ${(MINIMUM_LENGTH_SHORT_SIDE * 100).toFixed(0)}cm lang sein.`, }; class Dimensions { @@ -66,8 +69,12 @@ function cageCheck(dimensions, numRats, numFullFloors) { failedCriteria[FAILED_FALL_HEIGHT] = FAIL_CRITERIA[FAILED_FALL_HEIGHT]; } - if (dimensions.width < MINIMUM_LENGTH && dimensions.depth < MINIMUM_LENGTH) { - failedCriteria[FAILED_LENGTH] = FAIL_CRITERIA[FAILED_LENGTH]; + if (dimensions.width < MINIMUM_LENGTH_LONG_SIDE && dimensions.depth < MINIMUM_LENGTH_LONG_SIDE) { + failedCriteria[FAILED_MINIMUM_LENGTH_LONG_SIDE] = FAIL_CRITERIA[FAILED_MINIMUM_LENGTH_LONG_SIDE]; + } + + if (dimensions.width < MINIMUM_LENGTH_SHORT_SIDE || dimensions.depth < MINIMUM_LENGTH_SHORT_SIDE) { + failedCriteria[FAILED_MINIMUM_LENGTH_SHORT_SIDE] = FAIL_CRITERIA[FAILED_MINIMUM_LENGTH_SHORT_SIDE]; } if (dimensions.height / numFullFloors < MINIMUM_FLOOR_HEIGHT) {