Files
JIMRI/java/test/jmri/PathLengthTest.java
2026-06-17 14:00:51 +02:00

90 lines
3.1 KiB
Java

package jmri;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Tests for setting and changing path lengths of the Path class
* Path lengths should be inherited from their parent block unless
* explicitly set and must not exceed the length of their block.
*
* @author Pete Cressman Copyright (C) 2015
*/
public class PathLengthTest {
@Test
public void testDefaultPathLength() {
Path p = new Path();
Block b = new Block("IB1");
p.setBlock(b);
b.setLength(100);
assertEquals( 100f, p.getLengthMm(), 0.0, "check default path length millimeters");
assertEquals( 10f, p.getLengthCm(), 0.0, "check default path length centimeters");
assertEquals( 100/25.4f, p.getLengthIn(), 0.0, "check default path length inches");
assertEquals( p.getLength(), 0f, 0.0, "check raw path length");
}
@Test
public void testSetPathLength() {
Path p = new Path();
Block b = new Block("IB1");
p.setBlock(b);
b.addPath(p);
b.setLength(100);
assertEquals( 100f, b.getLengthMm(), 0.0, "check block length");
assertEquals( p.getLengthMm(), b.getLengthMm(), 0.0, "check path length equals block length");
p.setLength(50);
assertEquals( 50f, p.getLengthMm(), 0.0, "check path length");
p.setLength(150);
assertEquals( 150f, p.getLengthMm(), 0.0, "check path length");
assertEquals( 100f, b.getLengthMm(), 0.0, "check block length");
}
@Test
public void testChangePathLength() {
Path p1 = new Path();
Path p2 = new Path();
Path p3 = new Path();
Block b = new Block("IB1");
p1.setBlock(b);
b.addPath(p1);
p2.setBlock(b);
b.addPath(p2);
p3.setBlock(b);
b.addPath(p3);
b.setLength(100);
p1.setLength(80);
p2.setLength(50);
assertEquals( 80f, p1.getLengthMm(), 0.0, "check path p1 length Millimeters");
assertEquals( 50f, p2.getLengthMm(), 0.0, "check path p2 length Millimeters");
assertEquals( 100f, p3.getLengthMm(), 0.0, "check path p3 length Millimeters");
b.setLength(60);
assertEquals( 60f, b.getLengthMm(), 0.0, "check change block length");
assertEquals( 60f, p1.getLengthMm(), 0.0, "check change path p1 length");
assertEquals( 0f, p1.getLength(), 0.0, "check raw path p1 length");
assertEquals( 50f, p2.getLengthMm(), 0.0, "check change path p2 length");
assertEquals( 50f, p2.getLength(), 0.0, "check raw path p2 length");
assertEquals( 60f, p3.getLengthMm(), 0.0, "check change path p3 length");
assertEquals( 0f, p1.getLength(), 0.0, "check raw path p3 length");
}
@BeforeEach
public void setUp() {
jmri.util.JUnitUtil.setUp();
jmri.util.JUnitUtil.resetInstanceManager();
jmri.InstanceManager.store(new jmri.NamedBeanHandleManager(), jmri.NamedBeanHandleManager.class);
}
@AfterEach
public void tearDown() {
jmri.util.JUnitUtil.tearDown();
}
}