@@ -39,6 +39,7 @@ public class ConstructionModelImpl extends AbstractModel implements Construction
3939 private int currentYear = -1 ;
4040
4141
42+
4243 private float betaForZoneChoice ;
4344 private float priceIncreaseForNewDwelling ;
4445
@@ -110,6 +111,8 @@ public Collection<ConstructionEvent> getEventsForCurrentYear(int year) {
110111 }
111112
112113 DwellingType [] sortedDwellingTypes = findOrderOfDwellingTypes (dataContainer );
114+ int unrealizedDemandCounter = 0 ;
115+
113116 for (DwellingType dt : sortedDwellingTypes ) {
114117 int dto = dwellingTypes .indexOf (dt );
115118 for (int region : geoData .getRegions ().keySet ()) {
@@ -150,11 +153,18 @@ public Collection<ConstructionEvent> getEventsForCurrentYear(int year) {
150153 for (int i = 1 ; i <= unrealizedDwellings ; i ++) {
151154 int zone = allocateUnrealizedDemandInDifferentRegion (realEstate , dt , dto ,
152155 avePriceByTypeAndZone , avePriceByTypeAndRegion , utilitiesByDwellingTypeByZone );
153- events .add (createNewDwelling (realEstate , aveSizeByTypeAndRegion , avePriceByTypeAndZone ,
154- avePriceByTypeAndRegion , dt , dto , region , zone ));
156+
157+ if (zone > -1 ) {
158+ events .add (createNewDwelling (realEstate , aveSizeByTypeAndRegion , avePriceByTypeAndZone ,
159+ avePriceByTypeAndRegion , dt , dto , region , zone ));
160+ } else {
161+ unrealizedDemandCounter ++;
162+ }
155163 }
156164 }
157165 }
166+ logger .warn ("There have been " + unrealizedDemandCounter + " dwellings that could not be built " +
167+ "due to lack of developable land." );
158168 return events ;
159169 }
160170
0 commit comments