diff --git a/com.io7m.laurel.documentation/src/main/resources/com/io7m/laurel/documentation/i-images.xml b/com.io7m.laurel.documentation/src/main/resources/com/io7m/laurel/documentation/i-images.xml index 5190b96..e60e376 100644 --- a/com.io7m.laurel.documentation/src/main/resources/com/io7m/laurel/documentation/i-images.xml +++ b/com.io7m.laurel.documentation/src/main/resources/com/io7m/laurel/documentation/i-images.xml @@ -4,6 +4,14 @@ id="405b6ebe-a489-4849-8b02-57129078ab7e" title="Images"> - Images... + An image is a rectangular array of pixels. The application does not do any special + processing of images beyond storing them in the dataset. Images are, in practice, expected to be in one of the + various popular image formats such as + PNG. + + + Each image in the dataset may have zero or more + captions + assigned. diff --git a/com.io7m.laurel.tests/src/main/java/com/io7m/laurel/tests/LFileModelExportTest.java b/com.io7m.laurel.tests/src/main/java/com/io7m/laurel/tests/LFileModelExportTest.java index 03069b0..986189e 100644 --- a/com.io7m.laurel.tests/src/main/java/com/io7m/laurel/tests/LFileModelExportTest.java +++ b/com.io7m.laurel.tests/src/main/java/com/io7m/laurel/tests/LFileModelExportTest.java @@ -19,6 +19,8 @@ import com.io7m.laurel.filemodel.LExportRequest; import com.io7m.laurel.filemodel.LFileModelEventType; +import com.io7m.laurel.filemodel.LFileModelStatusIdle; +import com.io7m.laurel.filemodel.LFileModelStatusLoading; import com.io7m.laurel.filemodel.LFileModels; import com.io7m.laurel.filemodel.internal.LCaptionFiles; import com.io7m.laurel.gui.internal.LPerpetualSubscriber; @@ -38,7 +40,9 @@ import java.nio.file.Path; import java.util.HashMap; import java.util.List; +import java.util.Objects; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.zip.ZipInputStream; @@ -86,7 +90,16 @@ public void testExportDatasetGood() } try (var model = LFileModels.open(this.outputFile, false)) { - Thread.sleep(1_000L); + final var loadLatch = new CountDownLatch(1); + + model.status().subscribe((oldValue, newValue) -> { + if (oldValue instanceof LFileModelStatusLoading && newValue instanceof LFileModelStatusIdle) { + loadLatch.countDown(); + } + }); + + loadLatch.await(); + assertEquals(new LFileModelStatusIdle(), model.status().get()); model.export( new LExportRequest(outputPath, true))