package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.domain; import org.joda.time.DateTime; import org.junit.Test; import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.*; import static org.assertj.core.api.Assertions.assertThat; /** * Tests the JsonDiseaseGroup. * Copyright (c) 2014 University of Oxford */ public class JsonDiseaseGroupTest { @Test public void constructorSetsCorrectValues() { // Arrange DiseaseGroup diseaseGroup = new DiseaseGroup(10); diseaseGroup.setParentGroup(new DiseaseGroup(20, "Parent name")); diseaseGroup.setName("Name"); diseaseGroup.setGroupType(DiseaseGroupType.SINGLE); diseaseGroup.setPublicName("Public name"); diseaseGroup.setShortName("Short name"); diseaseGroup.setAbbreviation("Abbr"); diseaseGroup.setGlobal(true); diseaseGroup.setModelMode("test_mode"); diseaseGroup.setAgentType(DiseaseGroupAgentType.ALGA); diseaseGroup.setFilterBiasDataByAgentType(true); diseaseGroup.setValidatorDiseaseGroup(new ValidatorDiseaseGroup(30, "Validator name")); diseaseGroup.setWeighting(0.1); diseaseGroup.setAutomaticModelRunsStartDate(DateTime.now()); diseaseGroup.setMinNewLocationsTrigger(400); diseaseGroup.setMaxEnvironmentalSuitabilityForTriggering(0.3); diseaseGroup.setMinDistanceFromDiseaseExtentForTriggering(2.0); diseaseGroup.setMinDataVolume(100); diseaseGroup.setMinDistinctCountries(5); diseaseGroup.setHighFrequencyThreshold(10); diseaseGroup.setMinHighFrequencyCountries(20); diseaseGroup.setOccursInAfrica(true); diseaseGroup.setUseMachineLearning(true); diseaseGroup.setMaxEnvironmentalSuitabilityWithoutML(0.8); diseaseGroup.setDiseaseExtentParameters(new DiseaseExtent(diseaseGroup, 0.6, 60, 1, 2)); // Act JsonDiseaseGroup jsonDiseaseGroup = new JsonDiseaseGroup(diseaseGroup); // Assert assertThat(jsonDiseaseGroup.getName()).isEqualTo("Name"); assertThat(jsonDiseaseGroup.getGroupType()).isEqualTo(DiseaseGroupType.SINGLE.toString()); assertThat(jsonDiseaseGroup.getPublicName()).isEqualTo("Public name"); assertThat(jsonDiseaseGroup.getShortName()).isEqualTo("Short name"); assertThat(jsonDiseaseGroup.getAbbreviation()).isEqualTo("Abbr"); assertThat(jsonDiseaseGroup.getIsGlobal()).isTrue(); assertThat(jsonDiseaseGroup.getModelMode()).isEqualTo("test_mode"); assertThat(jsonDiseaseGroup.getFilterBiasDataByAgentType()).isEqualTo(true); assertThat(jsonDiseaseGroup.getAgentType()).isEqualTo("ALGA"); assertThat(jsonDiseaseGroup.getWeighting()).isEqualTo(0.1); assertThat(jsonDiseaseGroup.isAutomaticModelRuns()).isEqualTo(true); assertThat(jsonDiseaseGroup.getMinNewLocations()).isEqualTo(400); assertThat(jsonDiseaseGroup.getMaxEnvironmentalSuitabilityForTriggering()).isEqualTo(0.3); assertThat(jsonDiseaseGroup.getMinDistanceFromDiseaseExtentForTriggering()).isEqualTo(2.0); assertThat(jsonDiseaseGroup.getMinDataVolume()).isEqualTo(100); assertThat(jsonDiseaseGroup.getMinDistinctCountries()).isEqualTo(5); assertThat(jsonDiseaseGroup.getOccursInAfrica()).isTrue(); assertThat(jsonDiseaseGroup.getUseMachineLearning()).isTrue(); assertThat(jsonDiseaseGroup.getMaxEnvironmentalSuitabilityWithoutML()).isEqualTo(0.8); JsonParentDiseaseGroup parentDiseaseGroup = jsonDiseaseGroup.getParentDiseaseGroup(); assertThat(parentDiseaseGroup).isNotNull(); assertThat(parentDiseaseGroup.getId()).isEqualTo(20); assertThat(parentDiseaseGroup.getName()).isEqualTo("Parent name"); JsonValidatorDiseaseGroup validatorDiseaseGroup = jsonDiseaseGroup.getValidatorDiseaseGroup(); assertThat(validatorDiseaseGroup).isNotNull(); assertThat(validatorDiseaseGroup.getId()).isEqualTo(30); assertThat(validatorDiseaseGroup.getName()).isEqualTo("Validator name"); JsonDiseaseExtent diseaseExtentParameters = jsonDiseaseGroup.getDiseaseExtentParameters(); assertThat(diseaseExtentParameters).isNotNull(); assertThat(diseaseExtentParameters.getMinValidationWeighting()).isEqualTo(0.6); assertThat(diseaseExtentParameters.getLowerOccurrenceScore()).isEqualTo(1); assertThat(diseaseExtentParameters.getHigherOccurrenceScore()).isEqualTo(2); } }