@@ -116,15 +116,6 @@ public static byte[] RandomByteStringShort(IRandomGenExtended rand) {
116
116
rand .GetInt32 (MaxExclusiveShortStringLength ));
117
117
}
118
118
119
- public static ERational RandomERational (IRandomGenExtended rand ) {
120
- EInteger bigintA = RandomEInteger (rand );
121
- EInteger bigintB = RandomEInteger (rand );
122
- if (bigintB .isZero ()) {
123
- bigintB = EInteger .FromInt32 (1 );
124
- }
125
- return ERational .Create (bigintA , bigintB );
126
- }
127
-
128
119
public static String RandomTextString (IRandomGenExtended rand ) {
129
120
if (rand == null ) {
130
121
throw new NullPointerException ("rand" );
@@ -262,188 +253,6 @@ public static String RandomDecimalStringShort(
262
253
return sb .toString ();
263
254
}
264
255
265
- public static EDecimal GenerateEDecimalSmall (IRandomGenExtended wrapper ) {
266
- if (wrapper == null ) {
267
- throw new NullPointerException ("wrapper" );
268
- }
269
- if (wrapper .GetInt32 (2 ) == 0 ) {
270
- EInteger eix = EInteger .FromBytes (
271
- RandomByteString (wrapper , 1 + wrapper .GetInt32 (36 )),
272
- true );
273
- int exp = wrapper .GetInt32 (25 ) - 12 ;
274
- return EDecimal .Create (eix , exp );
275
- }
276
- return EDecimal .FromString (RandomDecimalStringShort (wrapper , false ));
277
- }
278
-
279
- public static EDecimal RandomEDecimal (IRandomGenExtended r ) {
280
- return RandomEDecimal (r , null );
281
- }
282
-
283
- public static EDecimal RandomEDecimal (IRandomGenExtended r , String []
284
- decimalString ) {
285
- if (r == null ) {
286
- throw new NullPointerException ("r" );
287
- }
288
- if (r .GetInt32 (100 ) == 0 ) {
289
- int x = r .GetInt32 (3 );
290
- if (x == 0 ) {
291
- if (decimalString != null ) {
292
- decimalString [0 ] = "Infinity" ;
293
- }
294
- return EDecimal .PositiveInfinity ;
295
- }
296
- if (x == 1 ) {
297
- if (decimalString != null ) {
298
- decimalString [0 ] = "-Infinity" ;
299
- }
300
- return EDecimal .NegativeInfinity ;
301
- }
302
- if (x == 2 ) {
303
- if (decimalString != null ) {
304
- decimalString [0 ] = "NaN" ;
305
- }
306
- return EDecimal .NaN ;
307
- }
308
- // Signaling NaN currently not generated because
309
- // it doesn't round-trip as well
310
- }
311
- if (r .GetInt32 (100 ) < 30 ) {
312
- String str = RandomDecimalString (r );
313
- if (str .length () < 500 ) {
314
- if (decimalString != null ) {
315
- decimalString [0 ] = str ;
316
- }
317
- return EDecimal .FromString (str );
318
- }
319
- }
320
- EInteger emant = RandomEInteger (r );
321
- EInteger eexp ;
322
- if (r .GetInt32 (100 ) < 95 ) {
323
- int exp = (r .GetInt32 (100 ) < 80 ) ? (r .GetInt32 (50 ) - 25 ) :
324
- (r .GetInt32 (5000 ) - 2500 );
325
- eexp = EInteger .FromInt32 (exp );
326
- } else {
327
- eexp = RandomEInteger (r );
328
- }
329
- EDecimal ed = EDecimal .Create (emant , eexp );
330
- if (decimalString != null ) {
331
- decimalString [0 ] = emant .toString () + "E" + eexp .toString ();
332
- }
333
- return ed ;
334
- }
335
-
336
- private static EInteger BitHeavyEInteger (IRandomGenExtended rg , int count ) {
337
- StringBuilder sb = new StringBuilder ();
338
- int [] oneChances = {
339
- 999 , 1 , 980 , 20 , 750 , 250 , 980 ,
340
- 20 , 980 , 20 , 980 , 20 , 750 , 250 ,
341
- };
342
- int oneChance = oneChances [rg .GetInt32 (oneChances .length )];
343
- for (int i = 0 ; i < count ; ++i ) {
344
- sb .append ((rg .GetInt32 (1000 ) >= oneChance ) ? '0' : '1' );
345
- }
346
- return EInteger .FromRadixString (sb .toString (), 2 );
347
- }
348
-
349
- private static EInteger DigitHeavyEInteger (IRandomGenExtended rg , int
350
- count ) {
351
- StringBuilder sb = new StringBuilder ();
352
- int [] oneChances = {
353
- 999 , 1 , 980 , 20 , 750 , 250 , 980 ,
354
- 20 , 980 , 20 , 980 , 20 , 750 , 250 ,
355
- };
356
- int oneChance = oneChances [rg .GetInt32 (oneChances .length )];
357
- for (int i = 0 ; i < count ; ++i ) {
358
- sb .append ((rg .GetInt32 (1000 ) >= oneChance ) ? '0' : '9' );
359
- }
360
- return EInteger .FromRadixString (sb .toString (), 10 );
361
- }
362
-
363
- public static EInteger RandomEInteger (IRandomGenExtended r ) {
364
- if (r == null ) {
365
- throw new NullPointerException ("r" );
366
- }
367
- int selection = r .GetInt32 (100 );
368
- if (selection < 10 ) {
369
- int count = r .GetInt32 (MaxNumberLength );
370
- count = (int )((long )count * r .GetInt32 (MaxNumberLength ) /
371
- MaxNumberLength );
372
- count = (int )((long )count * r .GetInt32 (MaxNumberLength ) /
373
- MaxNumberLength );
374
- count = Math .max (count , 1 );
375
- if (selection == 0 || selection == 1 ) {
376
- return BitHeavyEInteger (r , count );
377
- } else if ((selection == 2 || selection == 3 ) && count < 500 ) {
378
- return DigitHeavyEInteger (r , count );
379
- }
380
- byte [] bytes = RandomByteString (r , count );
381
- return EInteger .FromBytes (bytes , true );
382
- } else {
383
- byte [] bytes = RandomByteString (
384
- r ,
385
- r .GetInt32 (MaxShortNumberLength ) + 1 );
386
- return EInteger .FromBytes (bytes , true );
387
- }
388
- }
389
-
390
- public static EInteger RandomEIntegerSmall (IRandomGenExtended r ) {
391
- if (r == null ) {
392
- throw new NullPointerException ("r" );
393
- }
394
- byte [] bytes = RandomByteString (
395
- r ,
396
- r .GetInt32 (MaxShortNumberLength ) + 1 );
397
- return EInteger .FromBytes (bytes , true );
398
- }
399
-
400
- private static int IntInRange (IRandomGenExtended rg , int minInc , int
401
- maxExc ) {
402
- return minInc + rg .GetInt32 (maxExc - minInc );
403
- }
404
-
405
- public static EFloat CloseToPowerOfTwo (IRandomGenExtended rg ) {
406
- if (rg == null ) {
407
- throw new NullPointerException ("rg" );
408
- }
409
- int pwr = (rg .GetInt32 (100 ) < 80 ) ? IntInRange (rg , -20 , 20 ) :
410
- IntInRange (rg , -300 , 300 );
411
- int pwr2 = pwr - (rg .GetInt32 (100 ) < 80 ? IntInRange (rg , 51 , 61 ) :
412
- IntInRange (rg , 2 , 300 ));
413
- EFloat ef = rg .GetInt32 (2 ) == 0 ? EFloat .Create (1 ,
414
- pwr ).Add (EFloat .Create (1 , pwr2 )) : EFloat .Create (1 ,
415
- pwr ).Subtract (EFloat .Create (1 , pwr2 ));
416
- if (rg .GetInt32 (10 ) == 0 ) {
417
- pwr2 = pwr - (rg .GetInt32 (100 ) < 80 ? IntInRange (rg , 51 , 61 ) :
418
- IntInRange (rg , 2 , 300 ));
419
- ef = (rg .GetInt32 (2 ) == 0 ) ? ef .Add (EFloat .Create (1 , pwr2 )) :
420
- ef .Subtract (EFloat .Create (1 , pwr2 ));
421
- }
422
- return ef ;
423
- }
424
-
425
- public static EFloat RandomEFloat (IRandomGenExtended r ) {
426
- if (r == null ) {
427
- throw new NullPointerException ("r" );
428
- }
429
- if (r .GetInt32 (100 ) == 0 ) {
430
- int x = r .GetInt32 (3 );
431
- if (x == 0 ) {
432
- return EFloat .PositiveInfinity ;
433
- }
434
- if (x == 1 ) {
435
- return EFloat .NegativeInfinity ;
436
- }
437
- if (x == 2 ) {
438
- return EFloat .NaN ;
439
- }
440
- }
441
- return r .GetInt32 (100 ) == 3 ?
442
- CloseToPowerOfTwo (r ) : EFloat .Create (
443
- RandomEInteger (r ),
444
- EInteger .FromInt64 (r .GetInt32 (400 ) - 200 ));
445
- }
446
-
447
256
public static String RandomBigIntString (IRandomGenExtended r ) {
448
257
if (r == null ) {
449
258
throw new NullPointerException ("r" );
@@ -459,7 +268,7 @@ public static String RandomBigIntString(IRandomGenExtended r) {
459
268
return sb .toString ();
460
269
}
461
270
462
- public static EInteger RandomSmallIntegral (IRandomGenExtended r ) {
271
+ public static String RandomSmallIntegralString (IRandomGenExtended r ) {
463
272
if (r == null ) {
464
273
throw new NullPointerException ("r" );
465
274
}
0 commit comments