I made a separate class for the tests on Lists, as it didn't share any methods with the tests for Trees. What do you think about that?
Should I also put the tests for lists in a different file, even though TreeTest.cpp could mean test Tree.h?
I'd slightly prefer "null" b/c "nul" refers to the ASCII character. Feel free to add more spaces to make columns line up :)
Would llvm::interleaveComma help?
All of the tests above are testing getElementsAsNodesAndDelimiters -- could you put that into the test names? Or do you plan adding more assertions in the end? Or is that the only meaningful assertion? (I think not, we could also test the low-level non-typed function at least.)