From 0da8c34146a710a0208bd9cd6cb271bf601edd09 Mon Sep 17 00:00:00 2001 From: Alexander Shalamov Date: Mon, 17 Jun 2019 23:41:19 +0300 Subject: [PATCH] Add render tests for text-writing-mode layout property --- .../cjk-horizontal-vertical-mode/expected.png | Bin 0 -> 3409 bytes .../cjk-horizontal-vertical-mode/style.json | 68 +++++++++++++++ .../expected.png | Bin 0 -> 3044 bytes .../style.json | 58 +++++++++++++ .../expected.png | Bin 0 -> 3570 bytes .../style.json | 80 ++++++++++++++++++ .../expected.png | Bin 0 -> 3321 bytes .../style.json | 70 +++++++++++++++ .../cjk-vertical-horizontal-mode/expected.png | Bin 0 -> 3269 bytes .../cjk-vertical-horizontal-mode/style.json | 68 +++++++++++++++ .../cjk-vertical-mode/expected.png | Bin 0 -> 2275 bytes .../cjk-vertical-mode/style.json | 68 +++++++++++++++ .../latin-vertical-mode/expected.png | Bin 0 -> 902 bytes .../latin-vertical-mode/style.json | 48 +++++++++++ 14 files changed, 460 insertions(+) create mode 100644 test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/style.json create mode 100644 test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/style.json create mode 100644 test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/style.json create mode 100644 test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-mode/style.json create mode 100644 test/integration/render-tests/text-writing-mode/cjk-vertical-horizontal-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/cjk-vertical-horizontal-mode/style.json create mode 100644 test/integration/render-tests/text-writing-mode/cjk-vertical-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/cjk-vertical-mode/style.json create mode 100644 test/integration/render-tests/text-writing-mode/latin-vertical-mode/expected.png create mode 100644 test/integration/render-tests/text-writing-mode/latin-vertical-mode/style.json diff --git a/test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/expected.png b/test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..ca20330459acd413e3ef36491ce5229d1a601d7d GIT binary patch literal 3409 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 literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/style.json b/test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/style.json new file mode 100644 index 00000000000..cd90cadaf3c --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/cjk-horizontal-vertical-mode/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 128, + "width": 128 + } + }, + "center": [ 0, 0 ], + "zoom": 0, + "sources": { + "point": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ -10, 10 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 34, 0 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ -10, -10 ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "text", + "type": "symbol", + "source": "point", + "layout": { + "text-field": "{name_jp}", + "text-writing-mode": ["horizontal", "vertical"], + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 14 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/expected.png b/test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4a10c5dfa90bc3d67aa3eb4132144c8e19155a GIT binary patch literal 3044 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 literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/style.json b/test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/style.json new file mode 100644 index 00000000000..134da23622d --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/cjk-multiline-vertical-horizontal-mode/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 128, + "width": 128 + } + }, + "center": [ 0, 0 ], + "zoom": 0, + "sources": { + "point": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス\nボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, 14 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス\nボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, -28 ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "text", + "type": "symbol", + "source": "point", + "layout": { + "text-field": "{name_jp}", + "text-writing-mode": ["vertical", "horizontal"], + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 12 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/expected.png b/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ef07dea79039430de259a31eff65cdce00088b GIT binary patch literal 3570 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 literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/style.json b/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/style.json new file mode 100644 index 00000000000..25d953c108d --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-horizontal-mode/style.json @@ -0,0 +1,80 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 128, + "width": 128 + } + }, + "center": [ 0, 0 ], + "zoom": 0, + "sources": { + "point": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, 8 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, 8 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, 8 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップ" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, -34 ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "text", + "type": "symbol", + "source": "point", + "layout": { + "text-field": "{name_jp}", + "text-writing-mode": ["vertical", "horizontal"], + "text-radial-offset": 1, + "text-variable-anchor": ["center", "left", "right", "bottom"], + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 14 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-mode/expected.png b/test/integration/render-tests/text-writing-mode/cjk-variable-anchors-vertical-mode/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..402d88f3c7627f9f98d98e1cfdfc109cc6744a93 GIT binary patch literal 3321 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 D)>x|_ literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/text-writing-mode/cjk-vertical-horizontal-mode/style.json b/test/integration/render-tests/text-writing-mode/cjk-vertical-horizontal-mode/style.json new file mode 100644 index 00000000000..a84a132044f --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/cjk-vertical-horizontal-mode/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 128, + "width": 128 + } + }, + "center": [ 0, 0 ], + "zoom": 0, + "sources": { + "point": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ -10, 8 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 10, 8 ] + } + }, + { + "type": "Feature", + "properties": { + "name_jp": "マップボックス" + }, + "geometry": { + "type": "Point", + "coordinates": [ 0, -34 ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "text", + "type": "symbol", + "source": "point", + "layout": { + "text-field": "{name_jp}", + "text-writing-mode": ["vertical", "horizontal"], + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 14 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/cjk-vertical-mode/expected.png b/test/integration/render-tests/text-writing-mode/cjk-vertical-mode/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..43b2d37adf80da7163f1e9726c3b86367c696cf5 GIT binary patch literal 2275 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 c5OlXc0P_gUFsyAe8vp