Start on some Encoding unit tests.
This commit is contained in:
parent
047288ea3d
commit
bc21e746fb
@ -138,4 +138,48 @@ struct Encoding
|
|||||||
}
|
}
|
||||||
return (20u * n_high_zeros / n) != 0u;
|
return (20u * n_high_zeros / n) != 0u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unittest
|
||||||
|
{
|
||||||
|
import std.stdio;
|
||||||
|
import std.file;
|
||||||
|
const(ubyte)[] dat;
|
||||||
|
Encoding e;
|
||||||
|
size_t bom_size;
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/utf-8.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.UTF8);
|
||||||
|
assert(bom_size == 0u);
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/utf-8-bom.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.UTF8);
|
||||||
|
assert(bom_size == 3u);
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/utf-16le.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.UTF16_LE);
|
||||||
|
assert(bom_size == 2u);
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/utf-16le-nobom.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.UTF16_LE);
|
||||||
|
assert(bom_size == 0u);
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/utf-16be.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.UTF16_BE);
|
||||||
|
assert(bom_size == 2u);
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/utf-16be-nobom.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.UTF16_BE);
|
||||||
|
assert(bom_size == 0u);
|
||||||
|
|
||||||
|
dat = cast(const(ubyte)[])std.file.read("test/files/encodings/cp-1252.txt");
|
||||||
|
e = Encoding.detect_encoding(dat.ptr, dat.length, &bom_size);
|
||||||
|
assert(e == Encoding.CP1252);
|
||||||
|
assert(bom_size == 0u);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user