Add numerical checks for conditional tag.

- numbers are compared with their value
- strings are compared by checking the length
- Collections are evaluated on cheking their size
This commit is contained in:
Jo-Be-Co committed 2026-03-22 13:55:27 +01:00
1 parent cd9a070784
commit a8621699c1
4 files changed
+61 -13

No files matched your search

@@ -131,7 +131,7 @@ namespace TemplatesTests
[DataRow("4<bitrate> - <bitrate> 4", "", "", "1 8 - 1 8")]
[DataRow("<channels><channels><samplerate><channels><channels>", "", "", "100")]
[DataRow(" <channels> <channels> <samplerate> <channels> <channels>", "", "", "100")]
[DataRow(" <channels> - <channels> <samplerate> <channels> - <channels>", "", "", "- 100 -")]
[DataRow(" <channels> - <channels> <samplerate> <channels> - <channels>", "", "", "- 100 -")]
public void Tests_removeSpaces(string template, string dirFullPath, string extension, string expected)
{
@@ -400,26 +400,34 @@ namespace TemplatesTests
[DataRow("<has libation version->empty-string<-has>", "")]
[DataRow("<is libation version[=foobar]->empty-string<-has>", "")]
[DataRow("<is libation version[=]->empty-string<-has>", "empty-string")]
[DataRow("<is libation version[#=0]->empty-string<-has>", "empty-string")]
[DataRow("<is libation version[]->empty-string<-has>", "empty-string")]
[DataRow("<has file version->null-string<-has>", "")]
[DataRow("<has file version[=foobar]->null-string<-has>", "")]
[DataRow("<has file version[=]->null-string<-has>", "")]
[DataRow("<is file version[#=0]->null-string<-has>", "")]
[DataRow("<has file version[]->null-string<-has>", "")]
[DataRow("<has year->null-int<-has>", "")]
[DataRow("<is year[=]->null-int<-has>", "")]
[DataRow("<is year[#=0]->null-int<-has>", "")]
[DataRow("<is year[0]->null-int<-has>", "")]
[DataRow("<is year[]->null-int<-has>", "")]
[DataRow("<has FAKE->unknown-tag<-has>", "")]
[DataRow("<is FAKE[=]->unknown-tag<-has>", "")]
[DataRow("<is FAKE[=foobar]->unknown-tag<-has>", "")]
[DataRow("<is FAKE[#=0]->unknown-tag<-has>", "")]
[DataRow("<is FAKE[]->unknown-tag<-has>", "")]
[DataRow("<has narrator->empty-list<-has>", "")]
[DataRow("<is narrator[=foobar]->empty-list<-has>", "")]
[DataRow("<is narrator[=]->empty-list<-has>", "")]
[DataRow("<is narrator[~.*]->empty-list<-has>", "")]
[DataRow("<is narrator[<1]->empty-list<-has>", "empty-list")]
[DataRow("<is narrator[#=0]->empty-list<-has>", "empty-list")]
[DataRow("<is narrator[]->empty-list<-has>", "")]
[DataRow("<is first narrator->no-first<-has>", "")]
[DataRow("<is first narrator[=foobar]->no-first<-has>", "")]
[DataRow("<is first narrator[=]->no-first<-has>", "")]
[DataRow("<is first narrator[#=0]->no-first<-has>", "")]
[DataRow("<is first narrator[]->no-first<-has>", "")]
public void HasValue_on_empty_test(string template, string expected)
{
@@ -468,13 +476,21 @@ namespace TemplatesTests
[DataRow("<has ch# 0->true<-has>", "true")]
[DataRow("<is title[=A Study in Scarlet: An Audible Original Drama]->true<-has>", "true")]
[DataRow("<is title[U][=A STUDY IN SCARLET: AN AUDIBLE ORIGINAL DRAMA]->true<-has>", "true")]
[DataRow("<is title[#=45]->true<-has>", "true")]
[DataRow("<is title[!=foo]->true<-has>", "true")]
[DataRow("<is title[~A Study.*]->true<-has>", "true")]
[DataRow("<is title[foo]->true<-has>", "")]
[DataRow("<is ch count[>=1]->true<-has>", "true")]
[DataRow("<is ch count[>1]->true<-has>", "true")]
[DataRow("<is ch count[<=100]->true<-has>", "true")]
[DataRow("<is ch count[<100]->true<-has>", "true")]
[DataRow("<is ch count[=2]->true<-has>", "true")]
[DataRow("<is author[>=2]->true<-has>", "true")]
[DataRow("<is author[#=2]->true<-has>", "true")]
[DataRow("<is author[=Arthur Conan Doyle]->true<-has>", "true")]
[DataRow("<is author[format({L})][=Doyle]->true<-has>", "true")]
[DataRow("<is author[format({L})separator(:)][=Doyle:Fry]->true<-has>", "true")]
[DataRow("<is author[>=3]->true<-has>", "")]
[DataRow("<is author[=Sherlock]->true<-has>", "")]
public void HasValue_test(string template, string expected)
{