/** * Parses the allocation scenario test. * * @throws Exception the exception */ @Test( enabled = true, groups = {"demand", "database", "couchdb"}) public void parseAllocationScenarioTest() throws Exception { AllocationScenario allocationScenario = allocationScenarioDao.findAllocationScenarioById(WifKeys.TEST_ALLOCATION_SCENARIO_ID); WifProject project = wifProjectDao.findProjectById(allocationScenario.getProjectId()); SuitabilityScenario suitabilityScenario = suitabilityScenarioDao.findSuitabilityScenarioById( allocationScenario.getSuitabilityScenarioId()); Assert.assertNotNull(suitabilityScenario); DemandConfig demandConfig = demandConfigDao.findDemandConfigById(project.getDemandConfigId()); Assert.assertNotNull(demandConfig); DemandScenario demandScenario = demandScenarioDao.findDemandScenarioById(allocationScenario.getDemandScenarioId()); Assert.assertNotNull(demandScenario); // Parsing components project = projectParser.parse(project); suitabilityScenario = suitabilityParser.parseSuitabilityScenario(suitabilityScenario, project); demandConfig = demandSetupParser.parse(demandConfig, project); demandScenario = demandScenarioParser.parse(demandScenario, demandConfig, project); demandScenario = demandScenarioParser.parseAreaRequirements(demandScenario); allocationScenario.setDemandScenario(demandScenario); allocationScenario = allocationParser.parse(allocationScenario, project); // Checking mapping String AllocationConfigsId = project.getAllocationConfigsId(); LOGGER.info("getting the AllocationConfig with ID={}", AllocationConfigsId); AllocationConfigs allocationConfig = AllocationConfigsDao.findAllocationConfigsById(AllocationConfigsId); Assert.assertNotNull(allocationScenario.getLandUseOrderMap()); Assert.assertNotNull(allocationConfig.getAllocationColumnsMap()); // Checking allocationLU associations AllocationLU resLU = project.getExistingLandUseByLabel("Low Density Res."); Assert.assertNotNull(resLU.getAllocationFeatureFieldName()); Assert.assertNotEquals(resLU.getAreaRequirements().size(), 0); }
public AllocationSimpleAnalysisReport getAllocationSimpleAnalysisReport( final AllocationScenario allocationScenario) throws WifInvalidInputException, WifInvalidConfigException, ParsingException { LOGGER.info("getAllocationSimpleAnalysisReport for: {}", allocationScenario.getLabel()); final AllocationSimpleAnalysisReport allocationSimpleAnalysisReport = new AllocationSimpleAnalysisReport(); // final WifProject project = allocationScenario.getWifProject(); final String projectId = allocationScenario.getProjectId(); final WifProject project = projectService.getProject(projectId); final String AllocationConfigsId = project.getAllocationConfigsId(); final AllocationConfigs allocationConfig = AllocationConfigsDao.findAllocationConfigsById(AllocationConfigsId); allocationSimpleAnalysisReport.setReportType(allocationScenario.getDocType()); allocationSimpleAnalysisReport.setLabel(project.getName()); allocationSimpleAnalysisReport.setScenarioLabel(allocationScenario.getDocType()); allocationSimpleAnalysisReport.setProjectId(allocationScenario.getProjectId()); final Set<AllocationSimpleItemReport> setallocationSimpleItemReport = new HashSet<AllocationSimpleItemReport>(); // Getting land use information // LOGGER.info("Getting land use information: {}"); final DemandConfig demandConfig = demandConfigService.getDemandConfig(projectId); // LOGGER.info("Associated manualdemandConfigId: {}", // manualdemandConfig.getId()); final TreeSet<Projection> projections = new TreeSet<Projection>(new YearComparator()); projections.addAll(demandConfig.getProjections()); final Projection current = projections.first(); LOGGER.debug("current year projection: {}", current.getLabel()); // setting up taking into account current projection year is not a // projection by itself,per se, // NavigableSet<Projection> projectedSet = projections.tailSet( // projections.first(), false); final Set<AllocationLU> allocationLandUses = project.getAllocationLandUses(); for (final AllocationLU allocationLU : allocationLandUses) { if (allocationLU.getLabel() == null) { LOGGER.warn("Not performing analysis for null label for LU: {}", allocationLU.getId()); continue; } for (final Projection projection : projections) { LOGGER.debug("getAreaByLU for: {}, id {}", allocationLU.getLabel(), allocationLU.getId()); final String allocationFFName = allocationConfig.getAllocationColumnsMap().get(projection.getLabel()); final Double areaByLU = geodataFinder.getAreaByLUNew( project.getSuitabilityConfig().getUnifiedAreaZone(), project.getAreaLabel(), allocationFFName, WifKeys.FUTURELU_PREFIX + allocationLU.getFeatureFieldName()); final AllocationSimpleItemReport allocationSimpleItemReport = new AllocationSimpleItemReport(); allocationSimpleItemReport.setLanduseName(allocationLU.getLabel()); if (areaByLU == null) { allocationSimpleItemReport.setSumofArea(0.0); } else { allocationSimpleItemReport.setSumofArea(areaByLU); } allocationSimpleItemReport.setYear(projection.getYear()); setallocationSimpleItemReport.add(allocationSimpleItemReport); } } allocationSimpleAnalysisReport.setAllocationSimpleItemReport(setallocationSimpleItemReport); LOGGER.info( "Finished allocationAnalysisReport for: {}", allocationSimpleAnalysisReport.getProjectId()); return allocationSimpleAnalysisReport; }