Skip to content

Commit 31600a7

Browse files
committed
add test cases for redundant adjacency checks
Also fixes two rules involving wrong Avenue 90° viaduct rotations.
1 parent f62a077 commit 31600a7

3 files changed

Lines changed: 50 additions & 2 deletions

File tree

Controller/RUL2/06_Road_Viaducts/Sec6a_L1.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7757,7 +7757,7 @@
77577757
0x5C020B00,2,0,0x04006300,2,0=0x5C020B00,2,0,0x5C020A00,2,0
77587758
;
77597759
0x5C020A00,0,1,0x04006100,1,0=0x5C020A00,0,1,0x5C020000,1,0
7760-
0x5C020A00,2,0,0x04006100,2,0=0x5C020A00,2,0,0x5C020000,3,0
7760+
0x5C020A00,2,0,0x04006100,3,0=0x5C020A00,2,0,0x5C020000,3,0
77617761
0x5C020C00,3,0,0x04006100,3,0=0x5C020C00,3,0,0x5C020000,3,0
77627762
0x5C020C00,2,0,0x04006100,1,0=0x5C020C00,2,0,0x5C020000,1,0
77637763
;

Controller/RUL2/06_Road_Viaducts/Sec6b_L2.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3397,7 +3397,7 @@
33973397
0x5C050B00,2,0,0x04006300,2,0=0x5C050B00,2,0,0x5C050A00,2,0
33983398
;
33993399
0x5C050A00,0,1,0x04006100,1,0=0x5C050A00,0,1,0x5C050000,1,0
3400-
0x5C050A00,2,0,0x04006100,2,0=0x5C050A00,2,0,0x5C050000,3,0
3400+
0x5C050A00,2,0,0x04006100,3,0=0x5C050A00,2,0,0x5C050000,3,0
34013401
0x5C050C00,3,0,0x04006100,3,0=0x5C050C00,3,0,0x5C050000,3,0
34023402
0x5C050C00,2,0,0x04006100,1,0=0x5C050C00,2,0,0x5C050000,1,0
34033403
;--OXO INTERSECTIONS--
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.sc4nam.scripts
2+
3+
import org.scalatest.wordspec.AnyWordSpec
4+
import org.scalatest.matchers.should.Matchers
5+
import io.github.memo33.metarules.meta._
6+
import com.sc4nam.module._
7+
import syntax._, Implicits._, RotFlip._, Network._, Flags._, NetworkProperties._
8+
import RedundantAdjacenciesChecker.isRedundantAdjacency
9+
10+
class RedundantAdjacenciesCheckerSpec extends AnyWordSpec with Matchers {
11+
12+
"redundant adjacencies" should {
13+
"be compatible for equivalent rules" in {
14+
val rul2 = Seq(
15+
Rule(0x57227C10,2,0,0x57000000,1,0,0x57227C10,2,0,0x57120000,3,0),
16+
Rule(0x57227C10,2,0,0x57000000,3,0,0x57227C10,2,0,0x57120000,3,0),
17+
Rule(0x57227C10,2,0,0x57000000,1,1,0x57227C10,2,0,0x57120000,3,1),
18+
Rule(0x57227C10,2,0,0x57000000,3,1,0x57227C10,2,0,0x57120000,3,1),
19+
Rule(0x57120000,3,0,0x57031A00,0,0,0x57120000,3,0,0x57121D00,3,0),
20+
Rule(0x57120000,1,0,0x57031A00,0,0,0x57120000,1,0,0x57121D00,1,1),
21+
Rule(0x57120000,3,0,0x57031A00,2,0,0x57120000,3,0,0x57121D00,3,1),
22+
Rule(0x57120000,1,0,0x57031A00,2,0,0x57120000,1,0,0x57121D00,1,0),
23+
//
24+
Rule(0x5C020A00,0,1,0x04006100,1,0,0x5C020A00,0,1,0x5C020000,1,0),
25+
Rule(0x5C020A00,2,0,0x04006100,3,0,0x5C020A00,2,0,0x5C020000,3,0),
26+
Rule(0x5C020000,1,0,0x04006300,0,0,0x5C020000,1,0,0x5C020A00,0,0),
27+
Rule(0x5C020000,3,0,0x04006300,2,1,0x5C020000,3,0,0x5C020A00,2,1),
28+
)
29+
val lookupRule = rul2.map(r => (new EquivRule(r), r)).toMap
30+
val adjacencies = Seq(
31+
Rule(0x57227c10,0,1,0x57031a00,0,0,0x57227c10,0,1,0x57121d00,1,1),
32+
Rule(0x57227c10,2,0,0x57031a00,2,1,0x57227c10,2,0,0x57121d00,3,0),
33+
Rule(0x57031a00,2,0,0x57227c10,2,1,0x57121d00,3,1,0x57227c10,2,1),
34+
Rule(0x57031a00,0,1,0x57227c10,0,0,0x57121d00,1,0,0x57227c10,0,0),
35+
//
36+
Rule(0x5C020A00,2,0,0x04006300,2,1,0x5C020A00,2,0,0x5C020A00,2,1),
37+
Rule(0x5C020A00,0,1,0x04006300,0,0,0x5C020A00,0,1,0x5C020A00,0,0),
38+
Rule(0x04006300,0,1,0x5C020A00,0,0,0x5C020A00,0,1,0x5C020A00,0,0),
39+
Rule(0x04006300,2,0,0x5C020A00,2,1,0x5C020A00,2,0,0x5C020A00,2,1),
40+
)
41+
for (rule <- adjacencies) {
42+
withClue(rule) {
43+
isRedundantAdjacency(rule, lookupRule).shouldBe(true)
44+
}
45+
}
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)