Coverage for test_interlocking_examples.py: 99%

508 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2024-02-10 12:38 +0000

1#----------------------------------------------------------------------------------- 

2# Basic interlocking and route setting system tests 

3# 

4# When run as 'main' it uses the following example schematic files: 

5# "../configuration_examples/interlocking_colour_light_example.sig" 

6# "../configuration_examples/interlocking_semaphore_example.sig" 

7# 

8# common functions are also reused for the automation and approach control tests 

9#----------------------------------------------------------------------------------- 

10 

11from system_test_harness import * 

12import test_object_edit_windows 

13 

14#----------------------------------------------------------------------------------- 

15 

16def run_initial_state_tests(semaphore=False): 

17 print("Colour Light Initial state tests") 

18 # Signal 14 has no valid route available 

19 assert_signals_route_MAIN(1,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19) 

20 assert_signals_route_LH1(2) 

21 assert_signals_DANGER(1,2,3,4,5,6,7,8,10,11,12,13,14,15,17,19) 

22 assert_signals_CAUTION(9,18) 

23 # Differences are due to semaphore associated signals 

24 if semaphore: 

25 assert_signals_DANGER(16) 

26 assert_signals_locked(116) 

27 assert_signals_unlocked(16) 

28 else: 

29 assert_signals_CAUTION(16) 

30 assert_signals_locked(16) 

31 assert_points_unlocked(2,3,5) 

32 assert_signals_unlocked(1,3,4,5,6,7,8,10,11,12,13,15,17,19) 

33 assert_subsidaries_unlocked(1,2,3) 

34 assert_signals_locked(2,14) 

35 # distant signals 9,16 and 18 are locked on the home signals ahead 

36 assert_signals_locked(9,18) 

37 return() 

38 

39#----------------------------------------------------------------------------------- 

40 

41def run_signal_route_tests(): 

42 print("Common Signal Route tests") 

43 # Test the default route states 

44 # There is no route for signal 14 in the 'default' state 

45 assert_signals_route_MAIN(1,5,6,7,13) 

46 assert_signals_route_LH1(2) 

47 # Signals 1 and 6 

48 set_fpls_off(2) 

49 set_points_switched(2) 

50 set_fpls_on(2) 

51 assert_signals_route_LH1(1,6) 

52 set_fpls_off(2) 

53 set_points_normal(2) 

54 set_fpls_on(2) 

55 assert_signals_route_MAIN(1,6) 

56 # Signal 2, Signal 13 and Signal 14 

57 # Note that for Signal 2, MAIN is for the main line and LH1 is the siding 

58 # Note that for Signal 14, MAIN is for the crossover (no route back along main line) 

59 assert_signals_route_LH1(2) 

60 assert_signals_route_MAIN(13) 

61 # There is "no route" for signal 14 

62 set_fpls_off(3) 

63 set_points_switched(3) 

64 set_fpls_on(3) 

65 assert_signals_route_MAIN(2) 

66 assert_signals_route_RH1(13) 

67 # There is "no route" for signal 14 

68 set_points_switched(5) 

69 assert_signals_route_LH1(13) 

70 assert_signals_route_MAIN(14) 

71 set_points_normal(5) 

72 assert_signals_route_MAIN(2) 

73 assert_signals_route_RH1(13) 

74 # There is "no route" for signal 14 

75 set_fpls_off(3) 

76 set_points_normal(3) 

77 set_fpls_on(3) 

78 # Test everything has returned to the default state 

79 # There is "no route" for signal 14 

80 assert_signals_route_MAIN(1,5,6,7,13) 

81 assert_signals_route_LH1(2) 

82 return() 

83 

84#----------------------------------------------------------------------------------- 

85 

86def run_signal_aspect_tests(semaphore=False): 

87 print("Signal Aspect tests") 

88 # The main route tests are different because of associated distants 

89 # Set the home signals 'off' first, followed by the distant signals 

90 if semaphore: 

91 # Test the default state 

92 assert_signals_DANGER(17,16,8,1,2,3,4) 

93 # Main Route 1 

94 set_signals_off(17,16) 

95 assert_signals_PROCEED(17) 

96 assert_signals_CAUTION(16) 

97 set_signals_off(8,1,3,4,116) 

98 assert_signals_PROCEED(8,1,3,4,16) 

99 set_signals_on(16,17,8,1,3,4,116) 

100 # Main Route 2 - loop 

101 set_fpls_off(2,3) 

102 set_points_switched(2,3) 

103 set_fpls_on(2,3) 

104 set_signals_off(17,16) 

105 assert_signals_PROCEED(17) 

106 assert_signals_CAUTION(16) 

107 set_signals_off(8,1,2,4,116) 

108 assert_signals_PROCEED(8,1,2,4,16) 

109 set_signals_on(16,17,8,1,2,4,116) 

110 set_fpls_off(2,3) 

111 set_points_normal(2,3) 

112 set_fpls_on(2,3) 

113 # Test everything has returned to the default state 

114 assert_signals_DANGER(17,16,8,1,2,3,4) 

115 else: 

116 # Test the default state 

117 assert_signals_DANGER(17,8,1,2,3,4) 

118 assert_signals_CAUTION(16) 

119 # Main Route 1 - block 1 

120 set_signals_off(8,1,3,4,16,17) 

121 assert_signals_PROCEED(8,1,3,4,16,17) 

122 set_signals_on(8,1,3,4,16,17) 

123 # Main Route 2 - loop 

124 set_fpls_off(2,3) 

125 set_points_switched(2,3) 

126 set_fpls_on(2,3) 

127 set_signals_off(8,1,2,4,16,17) 

128 assert_signals_PROCEED(8,1,2,4,16,17) 

129 set_signals_on(8,1,2,4,16,17) 

130 set_fpls_off(2,3) 

131 set_points_normal(2,3) 

132 set_fpls_on(2,3) 

133 # Test everything has returned to the default state 

134 assert_signals_DANGER(17,8,1,2,3,4) 

135 assert_signals_CAUTION(16) 

136 # Main Route 2 

137 # Test the default state 

138 assert_signals_DANGER(12,10,19,11) 

139 assert_signals_CAUTION(9,18) 

140 # Set the home signals 'off' first, followed by the distant signals 

141 set_signals_off(11,19,18,10,12,9) 

142 assert_signals_PROCEED(11,19,18,10,12,9) 

143 set_signals_on(11,19,18,10,12,9) 

144 # Test everything has returned to the default state 

145 assert_signals_DANGER(12,10,19,11) 

146 assert_signals_CAUTION(9,18) 

147 return() 

148 

149#----------------------------------------------------------------------------------- 

150 

151def run_point_interlocking_tests(): 

152 print("Common Point Interlocking Tests") 

153 # Test the default state 

154 assert_points_unlocked(2,3,5) 

155 assert_signals_unlocked(1,3,5,6,7,12,13,15) 

156 assert_signals_locked(2,14) 

157 assert_subsidaries_unlocked(1,2,3) 

158 # Point 2 - Test interlocking when normal 

159 set_fpls_off(2) 

160 assert_signals_locked(1,5,6,15) 

161 assert_subsidaries_locked(1) 

162 set_fpls_on(2) 

163 assert_signals_unlocked(1,5,6,15) 

164 assert_subsidaries_unlocked(1) 

165 # Point 2 - Test interlocking when switched 

166 set_fpls_off(2) 

167 set_points_switched(2) 

168 set_fpls_on(2) 

169 assert_signals_unlocked(1,6) 

170 assert_signals_locked(5,15) 

171 assert_subsidaries_unlocked(1) 

172 # Point 2 - Test interlocking when returned to normal 

173 set_fpls_off(2) 

174 assert_signals_locked(1,5,6,15) 

175 assert_subsidaries_locked(1) 

176 set_points_normal(2) 

177 set_fpls_on(2) 

178 assert_signals_unlocked(1,5,6,15) 

179 assert_subsidaries_unlocked(1) 

180 # Point 3 - Test interlocking when normal 

181 assert_signals_unlocked(3,7,13) 

182 assert_subsidaries_unlocked(2,3) 

183 assert_signals_locked(2) 

184 set_fpls_off(3) 

185 assert_signals_locked(2,3,7,13) 

186 assert_subsidaries_locked(2,3) 

187 set_fpls_on(3) 

188 assert_signals_unlocked(3,7,13) 

189 assert_subsidaries_unlocked(2,3) 

190 assert_signals_locked(2) 

191 # Test effect of Point 5 (different signals interlocked) 

192 assert_signals_locked(14) 

193 assert_signals_unlocked(12,3,13) 

194 assert_subsidaries_unlocked(3) 

195 set_points_switched(5) 

196 assert_signals_locked(3,12) 

197 assert_signals_unlocked(13,14) 

198 assert_subsidaries_locked(3) 

199 set_points_normal(5) 

200 assert_signals_locked(14) 

201 assert_signals_unlocked(12,3,13) 

202 assert_subsidaries_unlocked(3) 

203 # Point 3 - Test interlocking when switched 

204 set_fpls_off(3) 

205 set_points_switched(3) 

206 set_fpls_on(3) 

207 assert_signals_unlocked(2,13) 

208 assert_signals_locked(3,7) 

209 assert_subsidaries_unlocked(2) 

210 assert_subsidaries_locked(3) 

211 # Test effect of Point 5 (different signals interlocked) 

212 assert_signals_locked(14) 

213 assert_signals_unlocked(12,2,13) 

214 assert_subsidaries_unlocked(2) 

215 set_points_switched(5) 

216 assert_signals_locked(2,12) 

217 assert_signals_unlocked(13,14) 

218 assert_subsidaries_locked(2) 

219 set_points_normal(5) 

220 assert_signals_locked(14) 

221 assert_signals_unlocked(12,2,13) 

222 assert_subsidaries_unlocked(2) 

223 # Point 2 - Test interlocking when returned to normal 

224 set_fpls_off(3) 

225 assert_signals_locked(2,3,7,13) 

226 assert_subsidaries_locked(2,3) 

227 set_points_normal(3) 

228 set_fpls_on(3) 

229 assert_signals_unlocked(3,7,13) 

230 assert_signals_locked(2) 

231 assert_subsidaries_unlocked(2,3) 

232 # Point 3 - Test interlocking when normal 

233 assert_signals_unlocked(3,13,12) 

234 assert_signals_locked(14) 

235 assert_subsidaries_unlocked(3) 

236 # Point 3 - Test interlocking when switched 

237 set_points_switched(5) 

238 assert_signals_unlocked(13,14) 

239 assert_signals_locked(3,12) 

240 assert_subsidaries_locked(3) 

241 # Point 2 - Test interlocking when returned to normal 

242 set_points_normal(5) 

243 # Test everything has been returned to the default state 

244 assert_points_unlocked(2,3,5) 

245 assert_signals_unlocked(1,3,5,6,7,12,13,15) 

246 assert_signals_locked(2,14) 

247 assert_subsidaries_unlocked(1,2,3) 

248 return() 

249 

250#----------------------------------------------------------------------------------- 

251 

252def run_signal_interlocking_tests(): 

253 print("Common Signal Interlocking Tests") 

254 # Test the default state 

255 assert_points_unlocked(2,3,5) 

256 assert_signals_unlocked(1,3,5,6,7,12,13,15) 

257 assert_signals_locked(2,14) 

258 assert_subsidaries_unlocked(1,2,3) 

259 # Test signal 8 interlocking 

260 set_signals_off(8) 

261 assert_signals_locked(15) 

262 set_signals_on(8) 

263 assert_signals_unlocked(15) 

264 # Test effect of point 2 (different signals interlocked) 

265 set_fpls_off(2) 

266 set_points_switched(2) 

267 set_fpls_on(2) 

268 set_signals_off(8) 

269 assert_signals_locked(6) 

270 set_signals_on(8) 

271 assert_signals_unlocked(6) 

272 # Return point 2 to normal 

273 set_fpls_off(2) 

274 set_points_normal(2) 

275 set_fpls_on(2) 

276 # Test signal 1 interlocking - main line 

277 set_signals_off(1) 

278 assert_signals_locked(13,15) 

279 assert_subsidaries_locked(1) 

280 assert_points_locked(2) 

281 set_signals_on(1) 

282 assert_signals_unlocked(13,15) 

283 assert_subsidaries_unlocked(1) 

284 assert_points_unlocked(1) 

285 set_subsidaries_off(1) 

286 assert_signals_locked(1,13,15) 

287 assert_points_locked(2) 

288 set_subsidaries_on(1) 

289 assert_signals_unlocked(1,13,15) 

290 assert_points_unlocked(1) 

291 # Test signals 1 interlocking on loop line 

292 set_fpls_off(2) 

293 set_points_switched(2) 

294 set_fpls_on(2) 

295 set_signals_off(1) 

296 assert_signals_locked(6,7) 

297 assert_points_locked(2) 

298 set_signals_on(1) 

299 set_subsidaries_off(1) 

300 assert_signals_locked(6,7) 

301 assert_points_locked(2) 

302 set_subsidaries_on(1) 

303 assert_signals_unlocked(6,7) 

304 assert_points_unlocked(1) 

305 # Test effect of point 3 (different interlocked signals) 

306 set_fpls_off(3) 

307 set_points_switched(3) 

308 set_fpls_on(3) 

309 set_signals_off(1) 

310 assert_signals_locked(6,13) 

311 set_signals_on(1) 

312 assert_signals_unlocked(6,13) 

313 set_subsidaries_off(1) 

314 assert_signals_locked(6,13) 

315 set_subsidaries_on(1) 

316 assert_signals_unlocked(6,13) 

317 assert_points_unlocked(1) 

318 # Set Points 2 and 3 back to their default states 

319 set_fpls_off(3) 

320 set_points_normal(3) 

321 set_fpls_on(3) 

322 set_fpls_off(2) 

323 set_points_normal(2) 

324 set_fpls_on(2) 

325 # Test signal 15 interlocking 

326 set_signals_off(15) 

327 assert_signals_locked(1,8) 

328 assert_subsidaries_locked(1) 

329 assert_points_locked(2) 

330 set_signals_on(15) 

331 assert_signals_unlocked(1,8) 

332 assert_subsidaries_unlocked(1) 

333 assert_points_unlocked(2) 

334 # Test Signal 3 interlocking 

335 set_signals_off(3) 

336 assert_signals_locked(13) 

337 assert_subsidaries_locked(3) 

338 assert_points_locked(3,5) 

339 set_signals_on(3) 

340 assert_signals_unlocked(13) 

341 assert_subsidaries_unlocked(3) 

342 assert_points_unlocked(2) 

343 set_subsidaries_off(3) 

344 assert_signals_locked(13,3) 

345 assert_points_locked(3,5) 

346 set_subsidaries_on(3) 

347 assert_signals_unlocked(13,3) 

348 assert_points_unlocked(3,5) 

349 # Test Signal 13 interlocking for MAIN route 

350 set_signals_off(13) 

351 assert_signals_locked(1,3) 

352 assert_subsidaries_locked(1,3) 

353 assert_points_locked(3,5) 

354 set_signals_on(13) 

355 assert_signals_unlocked(1,3) 

356 assert_subsidaries_unlocked(1,3) 

357 assert_points_unlocked(3,5) 

358 # Test Signal 13 interlocking for LH1 route 

359 set_points_switched(5) 

360 set_signals_off(13) 

361 assert_signals_locked(14) 

362 assert_points_locked(5) 

363 set_signals_on(13) 

364 assert_signals_unlocked(14) 

365 assert_points_unlocked(5) 

366 set_points_normal(5) 

367 # Test Signal 13 interlocking for RH1 route 

368 set_fpls_off(3) 

369 set_points_switched(3) 

370 set_fpls_on(3) 

371 set_signals_off(13) 

372 assert_signals_locked(2,5) 

373 assert_subsidaries_locked(2) 

374 assert_points_locked(3,5) 

375 set_signals_on(13) 

376 assert_signals_unlocked(2,5) 

377 assert_subsidaries_unlocked(2) 

378 assert_points_unlocked(3,5) 

379 # Test effect of point 2 (different interlocked signals) 

380 set_fpls_off(2) 

381 set_points_switched(2) 

382 set_fpls_on(2) 

383 set_signals_off(13) 

384 assert_signals_locked(2,1) 

385 assert_subsidaries_locked(2,1) 

386 assert_points_locked(3,5) 

387 set_signals_on(13) 

388 assert_signals_unlocked(2,1) 

389 assert_subsidaries_unlocked(2,1) 

390 assert_points_unlocked(3,5) 

391 # Set Points 2 and 3 back to their default states 

392 set_fpls_off(3) 

393 set_points_normal(3) 

394 set_fpls_on(3) 

395 set_fpls_off(2) 

396 set_points_normal(2) 

397 set_fpls_on(2) 

398 # Test Signal 5 interlocking 

399 set_signals_off(5) 

400 assert_signals_locked(6,7) 

401 assert_points_locked(2) 

402 set_signals_on(5) 

403 assert_signals_unlocked(6,7) 

404 assert_points_unlocked(2) 

405 # Test effect of point 3 (different interlocked signals) 

406 set_fpls_off(3) 

407 set_points_switched(3) 

408 set_fpls_on(3) 

409 set_signals_off(5) 

410 assert_signals_locked(6,13) 

411 assert_points_locked(2) 

412 set_signals_on(5) 

413 assert_signals_unlocked(6,13) 

414 assert_points_unlocked(2) 

415 # Set Point 3 back to its default state 

416 set_fpls_off(3) 

417 set_points_normal(3) 

418 set_fpls_on(3) 

419 # Test Signal 6 interlocking 

420 set_signals_off(6) 

421 assert_signals_locked(5) 

422 assert_points_locked(2) 

423 set_signals_on(6) 

424 assert_signals_unlocked(5) 

425 assert_points_unlocked(2) 

426 # Test effect of point 2 (different interlocked signals) 

427 set_fpls_off(2) 

428 set_points_switched(2) 

429 set_fpls_on(2) 

430 set_signals_off(6) 

431 assert_signals_locked(1,8) 

432 assert_subsidaries_locked(1) 

433 assert_points_locked(2) 

434 set_signals_on(6) 

435 assert_signals_unlocked(1,8) 

436 assert_subsidaries_unlocked(1) 

437 assert_points_unlocked(2) 

438 # Set Point 2 back to its default state 

439 set_fpls_off(2) 

440 set_points_normal(2) 

441 set_fpls_on(2) 

442 # Test signal 7 interlocking 

443 # Note that signal 2 is always locked when point 3 is normal 

444 set_signals_off(7) 

445 assert_signals_locked(2,5) 

446 assert_subsidaries_locked(2) 

447 assert_points_locked(3) 

448 set_signals_on(7) 

449 assert_signals_locked(2) 

450 assert_signals_unlocked(5) 

451 assert_subsidaries_unlocked(1) 

452 assert_points_unlocked(3) 

453 # Test effect of point 2 (different interlocked signals) 

454 # Note that signal 2 should always be locked unless route is set for MAIN 

455 set_fpls_off(2) 

456 set_points_switched(2) 

457 set_fpls_on(2) 

458 set_signals_off(7) 

459 assert_signals_locked(2,1) 

460 assert_subsidaries_locked(2,1) 

461 assert_points_locked(3) 

462 set_signals_on(7) 

463 assert_signals_locked(2) 

464 assert_signals_unlocked(1) 

465 assert_subsidaries_unlocked(2,1) 

466 assert_points_unlocked(3) 

467 # Set Point 2 back to its default state 

468 set_fpls_off(2) 

469 set_points_normal(2) 

470 set_fpls_on(2) 

471 # Test Signal 2 interlocking 

472 # Note that main signal is only for the MAIN route (not the siding) 

473 assert_signals_locked(2) 

474 set_subsidaries_off(2) 

475 assert_signals_locked(7) 

476 assert_points_locked(3) 

477 set_subsidaries_on(2) 

478 assert_signals_unlocked(7) 

479 assert_points_unlocked(3) 

480 # Test Signal 2 interlocking for LH1 route 

481 set_fpls_off(3) 

482 set_points_switched(3) 

483 set_fpls_on(3) 

484 set_signals_off(2) 

485 assert_signals_locked(13) 

486 assert_points_locked(3) 

487 set_signals_on(2) 

488 assert_signals_unlocked(13) 

489 assert_points_unlocked(3) 

490 set_subsidaries_off(2) 

491 assert_signals_locked(13) 

492 assert_points_locked(3) 

493 set_subsidaries_on(2) 

494 assert_signals_unlocked(13) 

495 assert_points_unlocked(3) 

496 # Set Point 3 back to its default state 

497 set_fpls_off(3) 

498 set_points_normal(3) 

499 set_fpls_on(3) 

500 # Test Signal 12 interlocking 

501 # Note that signal 14 should always be locked for this test 

502 set_signals_off(12) 

503 assert_signals_locked(14) 

504 assert_points_locked(5) 

505 set_signals_on(12) 

506 assert_signals_locked(14) 

507 assert_points_unlocked(5) 

508 # Test Signal 14 interlocking 

509 # Note this can only be cleared for the crossover 

510 assert_signals_locked(14) 

511 set_points_switched(5) 

512 set_signals_off(14) 

513 assert_signals_locked(13) 

514 assert_points_locked(5) 

515 set_signals_on(14) 

516 assert_signals_unlocked(13) 

517 assert_points_unlocked(5) 

518 set_points_normal(5) 

519 # Test everything has been returned to the default state 

520 assert_points_unlocked(2,3,5) 

521 assert_signals_unlocked(1,3,5,6,7,12,13,15) 

522 assert_signals_locked(2,14) 

523 assert_subsidaries_unlocked(1,2,3) 

524 return() 

525 

526#----------------------------------------------------------------------------------- 

527 

528def run_signal_interlock_ahead_tests(semaphore=False): 

529 print("Signal Interlock on signals ahead Tests") 

530 if semaphore: sig_id = 116 

531 else: sig_id = 16 

532 # Test the default state 

533 assert_signals_locked(9,18,sig_id) 

534 # Main line 1 

535 assert_signals_locked(sig_id) 

536 set_signals_off(8) 

537 assert_signals_locked(sig_id) 

538 set_signals_off(1) 

539 assert_signals_locked(sig_id) 

540 set_signals_off(3) 

541 assert_signals_locked(sig_id) 

542 set_signals_off(4) 

543 assert_signals_unlocked(sig_id) 

544 set_signals_off(sig_id) 

545 set_signals_on(8,1,3,4) 

546 assert_signals_unlocked(sig_id) 

547 set_signals_on(sig_id) 

548 assert_signals_locked(sig_id) 

549 # Main Line Loop 

550 set_fpls_off(2,3) 

551 set_points_switched(2,3) 

552 set_fpls_on(2,3) 

553 assert_signals_locked(sig_id) 

554 set_signals_off(8) 

555 assert_signals_locked(sig_id) 

556 set_signals_off(1) 

557 assert_signals_locked(sig_id) 

558 set_signals_off(2) 

559 assert_signals_locked(sig_id) 

560 set_signals_off(4) 

561 assert_signals_unlocked(sig_id) 

562 set_signals_off(sig_id) 

563 set_signals_on(8,1,2,4) 

564 assert_signals_unlocked(sig_id) 

565 set_signals_on(sig_id) 

566 assert_signals_locked() 

567 set_fpls_off(2,3) 

568 set_points_normal(2,3) 

569 set_fpls_on(2,3) 

570 # Main Line 2 - first section 

571 assert_signals_locked(9) 

572 set_signals_off(10) 

573 assert_signals_locked(9) 

574 set_signals_off(12) 

575 assert_signals_unlocked(9) 

576 set_signals_off(9) 

577 set_signals_on(12,10) 

578 assert_signals_unlocked(9) 

579 set_signals_on(9) 

580 assert_signals_locked(9) 

581 # Main Line 2 - second section 

582 assert_signals_locked(18) 

583 set_signals_off(19) 

584 assert_signals_locked(18) 

585 set_signals_off(11) 

586 assert_signals_unlocked(18) 

587 set_signals_off(18) 

588 set_signals_on(19,11) 

589 assert_signals_unlocked(18) 

590 set_signals_on(18) 

591 assert_signals_locked(18) 

592 # Test the default state 

593 assert_signals_locked(9,18,sig_id) 

594 return() 

595 

596###################################################################################################### 

597 

598def run_all_interlocking_example_tests(delay:float=0.0, shutdown:bool=False): 

599 initialise_test_harness(filename="../configuration_examples/interlocking_colour_light_example.sig") 

600 # Edit/save all schematic objects to give confidence that editing doesn't break the layout configuration 

601 set_edit_mode() 

602 test_object_edit_windows.test_all_object_edit_windows(delay) 

603 set_run_mode() 

604 reset_layout() 

605 run_initial_state_tests() 

606 run_signal_route_tests() 

607 run_signal_aspect_tests() 

608 run_point_interlocking_tests() 

609 run_signal_interlocking_tests() 

610 run_signal_interlock_ahead_tests() 

611 initialise_test_harness(filename="../configuration_examples/interlocking_semaphore_example.sig") 

612 # Edit/save all schematic objects to give confidence that editing doesn't break the layout configuration 

613 set_edit_mode() 

614 test_object_edit_windows.test_all_object_edit_windows(delay) 

615 set_run_mode() 

616 reset_layout() 

617 run_initial_state_tests(semaphore=True) 

618 run_signal_route_tests() 

619 run_signal_aspect_tests(semaphore=True) 

620 run_point_interlocking_tests() 

621 run_signal_interlocking_tests() 

622 run_signal_interlock_ahead_tests(semaphore=True) 

623 if shutdown: report_results() 

624 

625if __name__ == "__main__": 625 ↛ 626line 625 didn't jump to line 626, because the condition on line 625 was never true

626 start_application(lambda:run_all_interlocking_example_tests(delay=0.0, shutdown=True)) 

627 

628######################################################################################################