When I run strings.lua test it fails in this line:
assert(tonumber(string.format("%f", 10.3)) == 10.3)
I added a print before that line to see what the output is:
print("10.3 as string is: " .. string.format("%f", 10.3) .. " and as number: " .. tostring(tonumber(string.format("%f", 10.3))))
Output:
10.3 as string is: 10,3 and as number: nil
Meaning string.format prints the number in a culture-specific (here: de-DE) way and tonumber is unable to handle culture-specific conversion (comma as decimal character).
Not sure what the Lua library does but I place my bet that string.format should be culture-invariant and thus always print "10.3".