From 54ee482b755a7b5f1cbc1b0657c57b5bd914f0b5 Mon Sep 17 00:00:00 2001 From: razbroc Date: Mon, 18 May 2026 19:08:05 +0300 Subject: [PATCH 1/2] fix: correct tile size calculation and adjust loop boundaries for inclusive range --- MergerLogic/Batching/TileBounds.cs | 2 +- MergerService/Runners/TaskExecutor.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MergerLogic/Batching/TileBounds.cs b/MergerLogic/Batching/TileBounds.cs index 6cbb93e5..f1eea54f 100644 --- a/MergerLogic/Batching/TileBounds.cs +++ b/MergerLogic/Batching/TileBounds.cs @@ -23,7 +23,7 @@ public TileBounds(int zoom, int minX, int maxX, int minY, int maxY) public long Size() { - return (this.MaxX - this.MinX) * (this.MaxY - this.MinY); + return (this.MaxX - this.MinX + 1) * (this.MaxY - this.MinY + 1); } public void Print() diff --git a/MergerService/Runners/TaskExecutor.cs b/MergerService/Runners/TaskExecutor.cs index 135b7e64..b63b1a3c 100644 --- a/MergerService/Runners/TaskExecutor.cs +++ b/MergerService/Runners/TaskExecutor.cs @@ -143,9 +143,9 @@ public void ExecuteTask(MergeTask task, ITaskUtils taskUtils, string? managerCal { var batchWorkTimeStopwatch = Stopwatch.StartNew(); - for (int x = bounds.MinX; x < bounds.MaxX; x++) + for (int x = bounds.MinX; x <= bounds.MaxX; x++) { - for (int y = bounds.MinY; y < bounds.MaxY; y++) + for (int y = bounds.MinY; y <= bounds.MaxY; y++) { this._logger.LogDebug($"[{methodName}] Handle tile z:{bounds.Zoom}, x:{x}, y:{y}"); Coord coord = new Coord(bounds.Zoom, x, y); From 169fbbb37b066cd594a6399a54cced6e0d85172b Mon Sep 17 00:00:00 2001 From: razbroc Date: Mon, 18 May 2026 19:26:21 +0300 Subject: [PATCH 2/2] fix: update tile count assertions in unit tests for TMS, WMTS, and XYZ --- MergerLogicUnitTests/DataTypes/TMSTest.cs | 4 ++-- MergerLogicUnitTests/DataTypes/WMTSTest.cs | 4 ++-- MergerLogicUnitTests/DataTypes/XYZTest.cs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MergerLogicUnitTests/DataTypes/TMSTest.cs b/MergerLogicUnitTests/DataTypes/TMSTest.cs index 17b3ce3f..e5f731de 100644 --- a/MergerLogicUnitTests/DataTypes/TMSTest.cs +++ b/MergerLogicUnitTests/DataTypes/TMSTest.cs @@ -1,4 +1,4 @@ -using MergerLogic.Batching; +using MergerLogic.Batching; using MergerLogic.Clients; using MergerLogic.DataTypes; using MergerLogic.Monitoring.Metrics; @@ -510,7 +510,7 @@ public void TileCount(bool isOneXOne, GridOrigin origin) Grid grid = isOneXOne ? Grid.OneXOne : Grid.TwoXOne; var tmsSource = new TMS(this._serviceProviderMock.Object, "test", 10, extent, grid, origin, 3, 0); - Assert.AreEqual(10, tmsSource.TileCount()); + Assert.AreEqual(26, tmsSource.TileCount()); this._geoUtilsMock.Verify(utils => utils.ExtentToTileRange(It.IsAny(), It.IsAny(), It.IsAny()), Times.Exactly(4)); this.VerifyAll(); } diff --git a/MergerLogicUnitTests/DataTypes/WMTSTest.cs b/MergerLogicUnitTests/DataTypes/WMTSTest.cs index 1b4ef6c0..01569901 100644 --- a/MergerLogicUnitTests/DataTypes/WMTSTest.cs +++ b/MergerLogicUnitTests/DataTypes/WMTSTest.cs @@ -1,4 +1,4 @@ -using MergerLogic.Batching; +using MergerLogic.Batching; using MergerLogic.Clients; using MergerLogic.DataTypes; using MergerLogic.Monitoring.Metrics; @@ -512,7 +512,7 @@ public void TileCount(bool isOneXOne, GridOrigin origin) Grid grid = isOneXOne ? Grid.OneXOne : Grid.TwoXOne; var wmtsSource = new WMTS(this._serviceProviderMock.Object, "test", 10, extent, grid, origin, 3, 0); - Assert.AreEqual(10, wmtsSource.TileCount()); + Assert.AreEqual(26, wmtsSource.TileCount()); this._geoUtilsMock.Verify(utils => utils.ExtentToTileRange(It.IsAny(), It.IsAny(), It.IsAny()), Times.Exactly(4)); this.VerifyAll(); } diff --git a/MergerLogicUnitTests/DataTypes/XYZTest.cs b/MergerLogicUnitTests/DataTypes/XYZTest.cs index 90b17957..0bd0e3a7 100644 --- a/MergerLogicUnitTests/DataTypes/XYZTest.cs +++ b/MergerLogicUnitTests/DataTypes/XYZTest.cs @@ -1,4 +1,4 @@ -using MergerLogic.Batching; +using MergerLogic.Batching; using MergerLogic.Clients; using MergerLogic.DataTypes; using MergerLogic.Monitoring.Metrics; @@ -511,7 +511,7 @@ public void TileCount(bool isOneXOne, GridOrigin origin) Grid grid = isOneXOne ? Grid.OneXOne : Grid.TwoXOne; var xyzSource = new XYZ(this._serviceProviderMock.Object, "test", 10, extent, grid, origin, 3, 0); - Assert.AreEqual(10, xyzSource.TileCount()); + Assert.AreEqual(26, xyzSource.TileCount()); this._geoUtilsMock.Verify(utils => utils.ExtentToTileRange(It.IsAny(), It.IsAny(), It.IsAny()), Times.Exactly(4)); this.VerifyAll(); }