Skip to content

Commit 1c813de

Browse files
committed
fen tests
1 parent c8de864 commit 1c813de

File tree

5 files changed

+53
-90
lines changed

5 files changed

+53
-90
lines changed

src/dsstats.maui/dsstats.builder/dsstats.builder.tests/FenSharedTests.cs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,51 @@ public void FenRoundTrip_FromSpawnDto()
3131
Assert.AreEqual(fen, newFen);
3232
}
3333

34+
[TestMethod]
35+
public void CanApplyRlFenString()
36+
{
37+
string fen = "2:Terran;10q15/9q16/8q17/7q18/6q15q3/5q17w2/4q18qe1/3q19qqw/2q20qq1/1q20qq2/q20qq3/19eqq4/19qw5/18qq6/17qq7/16qq8/15qq9/14qq10/12eqq11/11qqw12/11qq13/5q4qq14/6wqqqq15/7eqq16/8w17|26/19z6/26/26/26/26/26/26/26/21d4/26/19d6/26/15f1d8/26/15d10/26/13d12/2z23/11d14/26/9d16/26/26/26";
38+
var cmdr = Commander.None;
39+
int team = 0;
40+
var spawn = new SpawnDto();
41+
DsFen.ApplyFen(fen, spawn, out cmdr, out team);
42+
43+
var marines = spawn.Units
44+
.Where(u => u.Unit.Name == "Marine")
45+
.FirstOrDefault();
46+
Assert.IsNotNull(marines);
47+
Assert.AreEqual(49, marines.Count);
48+
}
49+
50+
[TestMethod]
51+
public void CanApplyFenString()
52+
{
53+
Commander cmdr = Commander.Terran;
54+
int team = 2;
55+
SpawnDto spawn = new()
56+
{
57+
Units = new List<SpawnUnitDto>
58+
{
59+
new() { Unit = new() { Name = "Marine" }, Poss = "93,84,95,82,94,83,92,85,91,86,98,79,99,78,88,89,97,80,90,87,87,90,85,92,86,91,85,91,84,92,100,77,100,76,99,77,86,90,87,89,98,78,97,79,96,80,88,88,89,87,95,81,94,82,90,86,93,83,92,84,91,85,83,91,84,91,99,76,99,75,81,90,98,73,87,88,79,76,80,75,81,74,82,73,83,72,84,71,85,70,78,77,77,78,86,69,76,79" },
60+
}
61+
};
62+
var positions = spawn.Units.First().Poss.Split(',').Select(int.Parse).OrderBy(o => o).ToList();
63+
string fen = DsFen.GetFen(spawn, cmdr, team);
64+
Assert.IsNotNull(fen);
65+
Assert.IsTrue(fen.Length > 0);
66+
67+
var reSpawn = new SpawnDto();
68+
DsFen.ApplyFen(fen, reSpawn, out cmdr, out team);
69+
Assert.AreEqual(Commander.Terran, cmdr);
70+
Assert.AreEqual(2, team);
71+
Assert.IsNotNull(reSpawn.Units);
72+
Assert.IsTrue(reSpawn.Units.Count > 0);
73+
var rePositions = reSpawn.Units.First().Poss.Split(',').Select(int.Parse).OrderBy(o => o).ToList();
74+
Assert.AreEqual(positions.Count, rePositions.Count);
75+
for (int i = 0; i < positions.Count; i++)
76+
{
77+
Assert.AreEqual(positions[i], rePositions[i]);
78+
}
79+
}
80+
3481
}

src/dsstats.maui/dsstats.builder/dsstats.builder.tests/FenTests.cs

Lines changed: 0 additions & 86 deletions
This file was deleted.

src/dsstats.maui/dsstats.builder/dsstats.builder/Builds/WorkerMenu.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@ public List<InputEvent> ToggleBuildMenu(char c, ScreenArea screenArea)
4848
RlPoint screenPoint = new(x, y);
4949
var relativeScreenPoint = screenArea.ApplyTransforms(screenPoint);
5050
var center = screenArea.GetCenter();
51+
var moveEvent1 = new InputEvent(InputType.MouseMove, relativeScreenPoint.X, relativeScreenPoint.Y, 0, 200);
5152
var toggleEvent = new InputEvent(InputType.MouseRightClick, relativeScreenPoint.X, relativeScreenPoint.Y, 0, 20);
52-
var moveEvent = new InputEvent(InputType.MouseMove, center.X, center.Y, 0, 200);
53-
return [toggleEvent, moveEvent];
53+
var moveEvent2 = new InputEvent(InputType.MouseMove, center.X, center.Y, 0, 200);
54+
return [moveEvent1, toggleEvent, moveEvent2];
5455
}
5556
}

src/dsstats.shared/DsFen/DsFen.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,14 @@ private static void ParseLayer(string layer, CmdrBuild build, bool isAir, SpawnD
170170
var spawnUnit = spawn.Units.FirstOrDefault(u => u.Unit.Name == unitName);
171171
if (spawnUnit == null)
172172
{
173-
spawnUnit = new SpawnUnitDto { Unit = new UnitDto { Name = unitName }, Poss = "" };
173+
spawnUnit = new SpawnUnitDto { Count = 0, Unit = new UnitDto { Name = unitName }, Poss = "" };
174174
spawn.Units.Add(spawnUnit);
175175
}
176176

177177
if (!string.IsNullOrEmpty(spawnUnit.Poss))
178178
spawnUnit.Poss += ",";
179179
spawnUnit.Poss += $"{absPos.x},{absPos.y}";
180+
spawnUnit.Count++;
180181
}
181182

182183
x++;

src/dsstats.shared/ReplayDto.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public record SpawnDto
8181

8282
public record SpawnUnitDto
8383
{
84-
public byte Count { get; init; }
84+
public byte Count { get; set; }
8585
public string Poss { get; set; } = null!;
8686
public UnitDto Unit { get; init; } = null!;
8787
}

0 commit comments

Comments
 (0)