| @safe pure unittest | |
| { | |
| import std.format.spec; | |
| import std.array : appender; | |
| auto a = appender!(string)(); | |
| auto fmt = "Number: %6.4e\nString: %s"; | |
| auto f = FormatSpec!char(fmt); | |
| assert(f.writeUpToNextSpec(a)); | |
| assert(a.data == "Number: "); | |
| assert(f.trailing == "\nString: %s"); | |
| assert(f.spec == 'e'); | |
| assert(f.width == 6); | |
| assert(f.precision == 4); | |
| assert(f.writeUpToNextSpec(a)); | |
| assert(a.data == "Number: \nString: "); | |
| assert(f.trailing == ""); | |
| assert(f.spec == 's'); | |
| assert(!f.writeUpToNextSpec(a)); | |
| assert(a.data == "Number: \nString: "); | |
| } | |
| @safe pure unittest | |
| { | |
| import std.format.spec; | |
| import std.array : appender; | |
| import std.format.write : formatValue; | |
| auto spec = singleSpec("%10.3e"); | |
| auto writer = appender!string(); | |
| writer.formatValue(42.0, spec); | |
| assert(writer.data == " 4.200e+01"); | |
| } | |