From 657ed385ea5039d269563bda320d83737b256e7c Mon Sep 17 00:00:00 2001 From: yatarkan Date: Thu, 7 Aug 2025 17:54:14 +0400 Subject: [PATCH 1/3] Support .upper() and .lower() string methods --- include/minja/minja.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/minja/minja.hpp b/include/minja/minja.hpp index a36e446..9ae377d 100644 --- a/include/minja/minja.hpp +++ b/include/minja/minja.hpp @@ -1541,6 +1541,16 @@ class MethodCallExpr : public Expression { } else if (method->get_name() == "capitalize") { vargs.expectArgs("capitalize method", {0, 0}, {0, 0}); return Value(capitalize(str)); + } else if (method->get_name() == "upper") { + vargs.expectArgs("upper method", {0, 0}, {0, 0}); + auto result = str; + std::transform(result.begin(), result.end(), result.begin(), ::toupper); + return Value(result); + } else if (method->get_name() == "lower") { + vargs.expectArgs("lower method", {0, 0}, {0, 0}); + auto result = str; + std::transform(result.begin(), result.end(), result.begin(), ::tolower); + return Value(result); } else if (method->get_name() == "endswith") { vargs.expectArgs("endswith method", {1, 1}, {0, 0}); auto suffix = vargs.args[0].get(); From 7ad40890ed9ef54351caac8d350298940a8b39b1 Mon Sep 17 00:00:00 2001 From: yatarkan Date: Thu, 7 Aug 2025 17:54:36 +0400 Subject: [PATCH 2/3] Add syntax tests for upper and lower methods --- tests/test-syntax.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test-syntax.cpp b/tests/test-syntax.cpp index 1051b81..55e9b0b 100644 --- a/tests/test-syntax.cpp +++ b/tests/test-syntax.cpp @@ -91,6 +91,14 @@ TEST(SyntaxTest, SimpleCases) { EXPECT_EQ("abcXYZabcXYZabc", render("{{ 'abcXYZabcXYZabc'.replace('def', 'ok') }}", {}, {})); + EXPECT_EQ("HELLO WORLD", render("{{ 'hello world'.upper() }}", {}, {})); + EXPECT_EQ("MIXED", render("{{ 'MiXeD'.upper() }}", {}, {})); + EXPECT_EQ("", render("{{ ''.upper() }}", {}, {})); + + EXPECT_EQ("hello world", render("{{ 'HELLO WORLD'.lower() }}", {}, {})); + EXPECT_EQ("mixed", render("{{ 'MiXeD'.lower() }}", {}, {})); + EXPECT_EQ("", render("{{ ''.lower() }}", {}, {})); + EXPECT_EQ( "ok", render("{# Hey\nHo #}{#- Multiline...\nComments! -#}{{ 'ok' }}{# yo #}", {}, {})); From 295676f464a88fd8b7f63bb20387a666b0bbd750 Mon Sep 17 00:00:00 2001 From: yatarkan Date: Thu, 7 Aug 2025 17:55:09 +0400 Subject: [PATCH 3/3] Add llava-hf/llava-1.5-7b-hf to supported models --- tests/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c624d5a..491eca0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -168,6 +168,7 @@ set(MODEL_IDS knifeayumu/Cydonia-v1.3-Magnum-v4-22B langgptai/qwen1.5-7b-chat-sa-v0.1 LatitudeGames/Wayfarer-12B + llava-hf/llava-1.5-7b-hf LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct lightblue/DeepSeek-R1-Distill-Qwen-7B-Japanese