From 2c2efe8203a2906bac64e8493fdfe50db7c2fabe Mon Sep 17 00:00:00 2001 From: Leonid Kostrykin Date: Mon, 17 Mar 2025 23:00:12 +0100 Subject: [PATCH] Make `im8_uint16.tif` tiled so we have a test for `is_tiled=True` --- lib/galaxy/datatypes/images.py | 1 - test-data/im8_uint16.tif | Bin 28376 -> 41744 bytes 2 files changed, 1 deletion(-) diff --git a/lib/galaxy/datatypes/images.py b/lib/galaxy/datatypes/images.py index cdc3154cb12..83325e42b7f 100644 --- a/lib/galaxy/datatypes/images.py +++ b/lib/galaxy/datatypes/images.py @@ -324,7 +324,6 @@ class Tiff(Image): if is_tiled: # There are multiple segments that can be processed consecutively - # TODO: Add test case that covers this path (we have `is_tiled=False` for all previous tests) for segment in Tiff._read_segments(page): yield segment.reshape(-1) diff --git a/test-data/im8_uint16.tif b/test-data/im8_uint16.tif index be4c15380cea074ed1668ef99f4dddc418a4d04a..6b7582df274d98aba0ae9eb8a78686464a26b657 100644 GIT binary patch literal 41744 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 J@ju^}{|D(z+i3s* delta 7711 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 Oxh4?w9}PlZFZ?H^L^XN<