From 0620e1ad3e28d9a5be169930acbc31ba8841fc91 Mon Sep 17 00:00:00 2001 From: Jaro Date: Thu, 16 Mar 2023 15:35:46 +0100 Subject: [PATCH] Test effect of paragraph prefix. --- .golden/devanagariAccentParagraph/golden | 6 ++++++ .../devanagariPrefixedAccentParagraph/golden | 5 +++++ .../Text/ParagraphLayout/ParagraphData.hs | 8 ++++++++ test/Data/Text/ParagraphLayoutSpec.hs | 20 +++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 .golden/devanagariAccentParagraph/golden create mode 100644 .golden/devanagariPrefixedAccentParagraph/golden diff --git a/.golden/devanagariAccentParagraph/golden b/.golden/devanagariAccentParagraph/golden new file mode 100644 index 0000000..3328961 --- /dev/null +++ b/.golden/devanagariAccentParagraph/golden @@ -0,0 +1,6 @@ +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 645, y_size = -1000}, spanLayouts = [ + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 645, y_size = -1000}, fragmentPen = (0,-500), fragmentGlyphs = + [(GlyphInfo {codepoint = 529, cluster = 0, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 645, y_advance = 0, x_offset = 0, y_offset = 0}), + (GlyphInfo {codepoint = 424, cluster = 0, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 0, y_advance = 0, x_offset = 0, y_offset = 0})] + }] +]} diff --git a/.golden/devanagariPrefixedAccentParagraph/golden b/.golden/devanagariPrefixedAccentParagraph/golden new file mode 100644 index 0000000..d440ba3 --- /dev/null +++ b/.golden/devanagariPrefixedAccentParagraph/golden @@ -0,0 +1,5 @@ +ParagraphLayout {paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 0, y_size = -1000}, spanLayouts = [ + SpanLayout [Fragment {fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 0, y_size = -1000}, fragmentPen = (0,-500), fragmentGlyphs = + [(GlyphInfo {codepoint = 424, cluster = 1, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False},GlyphPos {x_advance = 0, y_advance = 0, x_offset = 0, y_offset = 0})] + }] +]} diff --git a/test/Data/Text/ParagraphLayout/ParagraphData.hs b/test/Data/Text/ParagraphLayout/ParagraphData.hs index c61c6ce..82cce58 100644 --- a/test/Data/Text/ParagraphLayout/ParagraphData.hs +++ b/test/Data/Text/ParagraphLayout/ParagraphData.hs @@ -1,7 +1,9 @@ module Data.Text.ParagraphLayout.ParagraphData (arabicFillerParagraph ,czechHelloParagraph + ,devanagariAccentParagraph ,devanagariParagraph + ,devanagariPrefixedAccentParagraph ,emptyParagraph ,emptySpanParagraph ,ligatureParagraph @@ -83,3 +85,9 @@ mixedLanguageLTRParagraph = "Tak " |< cs "jsem tady, " >|< ja "世界!" >| "zzzz -- | Source: devanagariParagraph :: ParagraphOptions -> Paragraph devanagariParagraph = "xxxxxxxx" |< zxx "पन्ह पन्ह त्र र्च कृकृ ड्ड न्हृे" >| "zzzzzzzz" + +devanagariAccentParagraph :: ParagraphOptions -> Paragraph +devanagariAccentParagraph = "" |< zxx "\x954" >| "" + +devanagariPrefixedAccentParagraph :: ParagraphOptions -> Paragraph +devanagariPrefixedAccentParagraph = "#" |< zxx "\x954" >| "" diff --git a/test/Data/Text/ParagraphLayoutSpec.hs b/test/Data/Text/ParagraphLayoutSpec.hs index 4c6174d..b3f1d81 100644 --- a/test/Data/Text/ParagraphLayoutSpec.hs +++ b/test/Data/Text/ParagraphLayoutSpec.hs @@ -103,6 +103,26 @@ spec = do { paragraphMaxWidth = 20000 } paragraphRect withoutSpans `shouldBe` paragraphRect withSpans describe "with Devanagari font" $ before loadSaralaRegular $ do + describe "lone accent character" $ do + let + result = \font -> layoutPlain $ + devanagariAccentParagraph $ + opts font + it "inserts a dotted circle" $ \font -> do + x_size (paragraphRect (result font)) `shouldBe` 645 + it "is golden" $ \font -> do + result font `shouldBeGolden` + "devanagariAccentParagraph" + describe "lone accent character after prefix" $ do + let + result = \font -> layoutPlain $ + devanagariPrefixedAccentParagraph $ + opts font + it "does not insert a dotted circle" $ \font -> do + x_size (paragraphRect (result font)) `shouldBe` 0 + it "is golden" $ \font -> do + result font `shouldBeGolden` + "devanagariPrefixedAccentParagraph" it "handles input without wrapping" $ \font -> do let result = layoutPlain $ devanagariParagraph $ -- 2.30.2