summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-12-02 09:08:01 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-12-02 09:08:01 -0500
commit96bf1092d9c0fc53ab3ab2da9d5af979ce890c81 (patch)
tree03d03d0b7045843e83185a33b667276480fabd0c
parentb86dfd9db0bf04807458388cb3b86c317f912cb2 (diff)
pke-test: horizontal centering tests after changes
-rw-r--r--tests/pke-test-font.cpp32
1 files changed, 19 insertions, 13 deletions
diff --git a/tests/pke-test-font.cpp b/tests/pke-test-font.cpp
index 7db06d4..b4a1235 100644
--- a/tests/pke-test-font.cpp
+++ b/tests/pke-test-font.cpp
@@ -425,7 +425,7 @@ int pke_test_font_007() {
FontRender *fr;
FontRenderSettings frs{};
uint32_t u = 0;
- float font_glyph_spacing, tmp;
+ float font_glyph_spacing;
glm::vec4 coord;
pke_test_font_inner_func_params params[3];
pk_arr_t<FontInstanceBufferItem> fibis{};
@@ -488,9 +488,11 @@ int pke_test_font_007() {
}
PK_TEST_ASSERT_EQ_RET (13, params[0].char_count);
+ // centered text ignores character padding at front + back
PK_TEST_ASSERT_EQ_RET (7402.f, floor((double)params[0].val * 100));
PK_TEST_ASSERT_EQ_RET (5, params[1].char_count);
- PK_TEST_ASSERT_EQ_RET (402777.f, floor((double)params[1].val * 10000));
+ // centered text removes white-space at beginning+end of lines
+ PK_TEST_ASSERT_EQ_RET (202777.f, floor((double)params[1].val * 10000));
PK_TEST_ASSERT_EQ_RET (4, params[2].char_count);
PK_TEST_ASSERT_EQ_RET (202777.f, floor((double)params[2].val * 10000));
}
@@ -515,21 +517,25 @@ int pke_test_font_007() {
{-1, 1},
*/
// top left
- // ~6 (padding) == (80 (box size) - 74.02)
- // ~3 padding on each side to center
+ // ~6 (total padding) == (80 (box size) - 74.02)
+ // ~3 padding on each side when centered
coord = fibis[0].pos_scale * glm::vec4(pkeIntrinsicsPlane.vert[0], 0, 1);
- coord += glm::vec4(1.f, 1.f, 0.f, 0.f);
- coord *= glm::vec4(1920.f/2.f, 1080.f/2.f, 0.f, 1.f);
- PK_TEST_ASSERT_GTE_RET(2, coord.x);
- PK_TEST_ASSERT_LTE_RET(3, coord.x);
- tmp = coord.x;
+ coord.x += 1;
+ coord.y += 1;
+ coord.x *= 1920.f/2.f;
+ coord.y *= 1080.f/2.f;
+ PK_TEST_ASSERT_GTE_RET(2.98, coord.x);
+ PK_TEST_ASSERT_LTE_RET(2.99, coord.x);
+ // tmp = coord.x;
// bottom right
coord = fibis[12].pos_scale * glm::vec4(pkeIntrinsicsPlane.vert[2], 0, 1);
- coord += glm::vec4(1.f, 1.f, 0.f, 0.f);
- coord *= glm::vec4(1920.f/2.f, 1080.f/2.f, 0.f, 1.f);
- PK_TEST_ASSERT_GTE_RET(tmp-0.1, frs.surface_area_size.x-coord.x);
- PK_TEST_ASSERT_LTE_RET(tmp+0.1, frs.surface_area_size.x-coord.x);
+ coord.x += 1;
+ coord.y += 1;
+ coord.x *= 1920.f/2.f;
+ coord.y *= 1080.f/2.f;
+ PK_TEST_ASSERT_GTE_RET(2.98, frs.surface_area_size.x-coord.x);
+ PK_TEST_ASSERT_LTE_RET(2.99, frs.surface_area_size.x-coord.x);
PK_TEST_ASSERT_GTE_RET(frs.surface_area_size.x-3, coord.x);
PK_TEST_ASSERT_LTE_RET(frs.surface_area_size.x-2, coord.x);
}