diff --git a/source/structs/package.d b/source/structs/package.d index b3b920f..cf6e3ce 100644 --- a/source/structs/package.d +++ b/source/structs/package.d @@ -396,24 +396,39 @@ public private { + size_t test_size(string FORMAT)() + { + size_t result = BaseFormat!FORMAT.size(); + { + auto tmp = parse_string(FORMAT); + size_t calced = 0; + foreach(i; tmp) + { + calced += i.packSize(); + } + assert(result == calced); + } + return result; + } + unittest { - assert(BaseFormat!"10s".size() == 10); - assert(BaseFormat!"b".size() == 1); - assert(BaseFormat!"4b".size() == 4); - assert(BaseFormat!"B".size() == 1); - assert(BaseFormat!"4B".size() == 4); - assert(BaseFormat!"h".size() == 2); - assert(BaseFormat!"4h".size() == 8); - assert(BaseFormat!"H".size() == 2); - assert(BaseFormat!"4H".size() == 8); - assert(BaseFormat!"i".size() == 4); - assert(BaseFormat!"4i".size() == 16); - assert(BaseFormat!"I".size() == 4); - assert(BaseFormat!"4I".size() == 16); - assert(BaseFormat!"q".size() == 8); - assert(BaseFormat!"4q".size() == 32); - assert(BaseFormat!"Q".size() == 8); - assert(BaseFormat!"4Q".size() == 32); + assert(test_size!"10s"() == 10); + assert(test_size!"b"() == 1); + assert(test_size!"4b"() == 4); + assert(test_size!"B"() == 1); + assert(test_size!"4B"() == 4); + assert(test_size!"h"() == 2); + assert(test_size!"4h"() == 8); + assert(test_size!"H"() == 2); + assert(test_size!"4H"() == 8); + assert(test_size!"i"() == 4); + assert(test_size!"4i"() == 16); + assert(test_size!"I"() == 4); + assert(test_size!"4I"() == 16); + assert(test_size!"q"() == 8); + assert(test_size!"4q"() == 32); + assert(test_size!"Q"() == 8); + assert(test_size!"4Q"() == 32); } }