33[ TestClass ]
44public sealed class ScreenAreaTests
55{
6+ private void AssertPointsAreClose ( RlPoint expected , RlPoint actual , int tolerance = 5 )
7+ {
8+ Assert . IsTrue (
9+ Math . Abs ( expected . X - actual . X ) <= tolerance &&
10+ Math . Abs ( expected . Y - actual . Y ) <= tolerance ,
11+ $ "Expected ({ expected . X } , { expected . Y } ), but got ({ actual . X } , { actual . Y } ) with tolerance ±{ tolerance } ") ;
12+ }
13+
614 [ TestMethod ]
715 public void CanCalculateCenter ( )
816 {
917 var screenArea = new ScreenArea ( 2560 , 1440 ) ;
1018 var center = screenArea . GetCenter ( ) ;
1119 var expected = new RlPoint ( 1280 , 600 ) ;
12- Assert . AreEqual ( expected , center , $ "Wrong center: ( { center . X } , { center . Y } " ) ;
20+ AssertPointsAreClose ( expected , center ) ;
1321 }
1422
1523 [ TestMethod ]
@@ -29,52 +37,62 @@ public void CanMapCenterPoint()
2937 var screenArea = new ScreenArea ( 2560 , 1440 ) ;
3038 var buildArea = new BuildArea ( ) ;
3139 var buildCenter = buildArea . GetCenter ( ) ;
32- var screenPos = screenArea . GetScreenPosition ( buildCenter ) ;
40+ var normalizedBuildCenter = buildArea . NormalizeToTop ( buildCenter ) ;
41+ var screenPos = screenArea . GetScreenPosition ( normalizedBuildCenter ) ;
3342 var expected = screenArea . GetCenter ( ) ;
34- Assert . AreEqual ( expected , screenPos , $ "point map failed: ( { expected . X } , { expected . Y } ) => ( { screenPos . X } , { screenPos . Y } )" ) ;
43+ AssertPointsAreClose ( expected , screenPos ) ;
3544 }
3645
3746 [ TestMethod ]
3847 public void CanMapLeftPoint ( )
3948 {
4049 var screenArea = new ScreenArea ( 2560 , 1440 ) ;
4150 var replayPos = new RlPoint ( 73 , 82 ) ;
42- var screenPos = screenArea . GetScreenPosition ( replayPos ) ;
51+ var buildArea = new BuildArea ( ) ;
52+ var normalizedReplayPos = buildArea . NormalizeToTop ( replayPos ) ;
53+ var screenPos = screenArea . GetScreenPosition ( normalizedReplayPos ) ;
4354
4455 var expected = new RlPoint ( 485 , 437 ) ;
45- Assert . AreEqual ( expected , screenPos , $ "point map failed: ( { expected . X } , { expected . Y } ) => ( { screenPos . X } , { screenPos . Y } )" ) ;
56+ AssertPointsAreClose ( expected , screenPos ) ;
4657 }
4758
4859 [ TestMethod ]
4960 public void CanMapRightPoint ( )
5061 {
5162 var screenArea = new ScreenArea ( 2560 , 1440 ) ;
5263 var replayPos = new RlPoint ( 101 , 76 ) ;
53- var screenPos = screenArea . GetScreenPosition ( replayPos ) ;
64+ var buildArea = new BuildArea ( ) ;
65+ var normalizedReplayPos = buildArea . NormalizeToTop ( replayPos ) ;
66+ var screenPos = screenArea . GetScreenPosition ( normalizedReplayPos ) ;
5467
5568 var expected = new RlPoint ( 2100 , 765 ) ;
56- Assert . AreEqual ( expected , screenPos , $ "point map failed: ( { expected . X } , { expected . Y } ) => ( { screenPos . X } , { screenPos . Y } )" ) ;
69+ AssertPointsAreClose ( expected , screenPos ) ;
5770 }
5871
5972 [ TestMethod ]
6073 public void CanMapTopPoint ( )
6174 {
6275 var screenArea = new ScreenArea ( 2560 , 1440 ) ;
6376 var replayPos = new RlPoint ( 84 , 93 ) ;
64- var screenPos = screenArea . GetScreenPosition ( replayPos ) ;
77+ var buildArea = new BuildArea ( ) ;
78+ var normalizedReplayPos = buildArea . NormalizeToTop ( replayPos ) ;
79+ var screenPos = screenArea . GetScreenPosition ( normalizedReplayPos ) ;
6580
6681 var expected = new RlPoint ( 1124 , - 110 ) ;
67- Assert . AreEqual ( expected , screenPos , $ "point map failed: ( { expected . X } , { expected . Y } ) => ( { screenPos . X } , { screenPos . Y } )" ) ;
82+ AssertPointsAreClose ( expected , screenPos ) ;
6883 }
6984
7085 [ TestMethod ]
7186 public void CanMapBottomPoint ( )
7287 {
7388 var screenArea = new ScreenArea ( 2560 , 1440 ) ;
7489 var replayPos = new RlPoint ( 90 , 65 ) ;
75- var screenPos = screenArea . GetScreenPosition ( replayPos ) ;
90+ var buildArea = new BuildArea ( ) ;
91+ var normalizedReplayPos = buildArea . NormalizeToTop ( replayPos ) ;
92+ var screenPos = screenArea . GetScreenPosition ( normalizedReplayPos ) ;
7693
7794 var expected = new RlPoint ( 1468 , 1423 ) ;
78- Assert . AreEqual ( expected , screenPos , $ "point map failed: ( { expected . X } , { expected . Y } ) => ( { screenPos . X } , { screenPos . Y } )" ) ;
95+ AssertPointsAreClose ( expected , screenPos ) ;
7996 }
8097}
98+
0 commit comments