Generating Strings with Random Contents
"Nordlöw" via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 17 03:28:39 PDT 2014
On Wednesday, 16 July 2014 at 23:24:24 UTC, Joseph Rushton
Wakeling via Digitalmars-d-learn wrote:
> Are you interested in having each character in the sequence
> randomly chosen independently of all the others, or do you want
> a random subset of all available characters (i.e. no character
> appears more than once), or something else again?
Just a random dchar (ciode point) sample like this:
/** Generate Random Contents of $(D x).
See also:
http://forum.dlang.org/thread/emlgflxpgecxsqweauhc@forum.dlang.org
*/
auto ref randInPlace(ref dchar x) @trusted
{
auto ui = uniform(0,
0xD800 +
(0x110000 - 0xE000) - 2 // minus two for
U+FFFE and U+FFFF
);
if (ui < 0xD800)
{
return x = ui;
}
else
{
ui -= 0xD800;
ui += 0xE000;
// skip undefined
if (ui < 0xFFFE)
return x = ui;
else
ui += 2;
assert(ui < 0x110000);
return x = ui;
}
}
I don't know how well this plays with
unittest
{
import dbg;
dln(randomized!dchar);
dstring d =
"alphaalphaalphaalphaalphaalphaalphaalphaalphaalpha";
dln(d.randomize);
}
though.
See complete logic at
https://github.com/nordlow/justd/blob/master/random_ex.d
More information about the Digitalmars-d-learn
mailing list