Unicode-Zeichenfolgen überprüfen, die für unit-tests
Brauche ich einige Utf32-test-strings, um die übung einige cross-Plattform-string-manipulation code. Ich möchte eine suite von test-strings ist, dass die Ausübung der utf32 <-> utf16 <-> utf8-Codierungen zu überprüfen, dass Zeichen außerhalb der BMP umgewandelt werden kann, aus utf32, durch utf16 Surrogate, durch utf-8 und zurück. richtig.
Und ich finde es immer etwas eleganter, wenn die Saiten in Frage, nicht nur aus zufälligen bytes, aber wirklich sinnvoll ist, in die (verschiedenen) Sprachen, für die Sie Kodieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl dies nicht ganz das, was Sie gefragt, ich habe immer gefunden, dieser test-Dokument nützlich.
http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
Die gleiche Seite bietet diese
http://www.cl.cam.ac.uk/~mgk25/ucs/examples/quickbrown.txt
... die werden-äquivalente des englischen ' s "Quick brown fox" - text, die übung alle Zeichen verwendet werden, für eine Vielzahl von Sprachen. Diese Seite bezieht sich auf eine größere Liste von "pangrams", die verwendet werden auf Wikipedia, wurde aber anscheinend gelöscht. Es ist hier noch verfügbar:
http://clagnut.com/blog/2380/
Können Sie versuchen, diese ein (es gibt einige Sätze in Russisch, Griechisch, Chinesisch, etc. um zu testen, Unicode):
http://www.madore.org/~david/misc/unitest/
https://github.com/noct/cutf/tree/master/bin
Enthält folgende Dateien:
Hmmm
Konnte man eine Menge von zufälligen Daten durch googeln (und siehe Rechte Spalte für Fragen wie diese auf SO...)
Jedoch, ich empfehlen Sie ziemlich viel bauen Sie Ihre test-strings als byte-array. Es ist nicht wirklich über ', was Daten', nur, dass unicode wird korrekt behandelt.
E. g. werden Sie wollen, stellen Sie sicher, dass identische strings in verschiedenen normalisierte Formen (d.h. auch wenn Sie nicht in kanonischer form) noch vergleichen gleich.
Werden Sie wollen, um zu überprüfen, dass der string-Länge-Erkennung ist robust (und erkennt Einzel -, Doppel -, Dreibett-und Vierbett-byte-Zeichen). Sie werden prüfen wollen, das überqueren eines string von Anfang bis Ende ehrt die gleiche Logik. Mehr gezielte tests für random-access-unicode-Zeichen.
Diese sind alle Dinge, die Sie kannte, bin ich mir sicher. Ich bin nur in Rechtschreibung Sie aus, um Sie daran zu erinnern, dass Sie brauchen test-Daten kümmerten sich um genau die Grenzfälle, die logischen Eigenschaften, die intrinsisch sind zu Unicode.
Nur dann haben Sie die richtige test-Daten.
Die über diesen Rahmen hinausgehen (technische korrekte Unicode-handling) ist die aktuelle Lokalisierung (die Sortierung, die charset-Konvertierung etc.). Ich beziehe mich auf die Türkei Test
Hier sind hilfreiche links:
Wenn Sie nicht brauchen etwas, das so umfangreich ist, wie der http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt Testfällen, die folgende Werkzeug ist nützlich, um eine Handvoll von testcases von Interesse:
http://rishida.net/tools/conversion/
Beispiel:
Wirklich testen alle möglichen Konvertierungen zwischen den Formaten, im Gegensatz zu den Charakter-Konvertierungen (z.B. towupper(), towlower ()), sollten Sie testen, alle Zeichen. Die folgende Schleife gibt Ihnen alle diese:
Diese Weise können Sie sicherstellen, dass Sie nichts verpassen (d.h. zu 100% abgeschlossen zu testen.) Dies ist nur 1,112,065 Zeichen, so wird es sehr schnell mit einem modernen computer.