diff --git a/src/arcade/potts/agent/cell/PottsCell.java b/src/arcade/potts/agent/cell/PottsCell.java index ab3996071..b05310e27 100644 --- a/src/arcade/potts/agent/cell/PottsCell.java +++ b/src/arcade/potts/agent/cell/PottsCell.java @@ -79,7 +79,7 @@ public abstract class PottsCell implements Cell { private final EnumMap targetRegionSurfaces; /** Critical volume for cell [voxels]. */ - final double criticalVolume; + double criticalVolume; /** Critical volumes for cell by region [voxels]. */ final EnumMap criticalRegionVolumes; @@ -295,6 +295,15 @@ public double getCriticalVolume() { return criticalVolume; } + /** + * Sets the critical volume of the cell. + * + * @param newCriticalVolume the new critical volume + */ + public void setCriticalVolume(double newCriticalVolume) { + criticalVolume = newCriticalVolume; + } + /** * Gets the critical volume for a region. * diff --git a/test/arcade/potts/agent/cell/PottsCellTest.java b/test/arcade/potts/agent/cell/PottsCellTest.java index b4e75299c..76de36dba 100644 --- a/test/arcade/potts/agent/cell/PottsCellTest.java +++ b/test/arcade/potts/agent/cell/PottsCellTest.java @@ -652,6 +652,28 @@ public void getCriticalVolume_afterInitializeNoRegion_returnsZero() { } } + @Test + public void setCriticalVolume_calledWithRegions_correctlySetsCriticalVolume() { + PottsCell cell = new PottsCellMock(containerWithRegions, locationMock, parametersMock); + assertEquals(cellCriticalVolume, cell.getCriticalVolume()); + double newCriticalVolume = randomDoubleBetween(10, 20); + cell.setCriticalVolume(newCriticalVolume); + assertEquals(newCriticalVolume, cell.getCriticalVolume()); + cell.setCriticalVolume(cellCriticalVolume); + assertEquals(cellCriticalVolume, cell.getCriticalVolume()); + } + + @Test + public void setCriticalVolume_calledWithoutRegions_correctlySetsCriticalVolume() { + PottsCell cell = new PottsCellMock(containerWithoutRegions, locationMock, parametersMock); + assertEquals(cellCriticalVolume, cell.getCriticalVolume()); + double newCriticalVolume = randomDoubleBetween(10, 20); + cell.setCriticalVolume(newCriticalVolume); + assertEquals(newCriticalVolume, cell.getCriticalVolume()); + cell.setCriticalVolume(cellCriticalVolume); + assertEquals(cellCriticalVolume, cell.getCriticalVolume()); + } + @Test public void getCriticalHeight_beforeInitialize_returnsValue() { assertEquals(cellCriticalHeight, cellWithoutRegions.getCriticalHeight(), EPSILON);