This is a more idiomatic way of printing the contents of an object
than reaching into its innards. It is also more 1-1 with the original
C# code, which overrides toString for Item.
Usual Rust practice is to put tests in the same file they are testing.
I don't see any magic in the texttests that would require tests and code
to be in separate files, but I am not entirely sure, so I added the
risky tag.