internal static long RandomLong()
{
if (Random().NextBoolean())
{
long l = 1;
if (Random().NextBoolean())
{
l *= -1;
}
foreach (long i in PRIMES)
{
int m = Random().Next(3);
for (int j = 0; j < m; ++j)
{
l *= i;
}
}
return l;
}
else if (Random().NextBoolean())
{
return Random().NextLong();
}
else
{
return RandomInts.RandomFrom(Random(), Arrays.AsList(long.MinValue, long.MaxValue, 0L, -1L, 1L));
}
}