@@ -26,6 +26,9 @@ use prelude::*;
26
26
use str;
27
27
use uint;
28
28
use vec;
29
+ use i8;
30
+ use i16;
31
+ use i32;
29
32
30
33
pub const bits : uint = inst:: bits;
31
34
pub const bytes : uint = ( inst:: bits / 8 ) ;
@@ -301,13 +304,13 @@ fn test_from_str() {
301
304
assert from_str(~" 0 ") == Some(0 as T);
302
305
assert from_str(~" 3 ") == Some(3 as T);
303
306
assert from_str(~" 10 ") == Some(10 as T);
304
- assert from_str(~" 123456789 ") == Some(123456789 as T );
307
+ assert i32:: from_str(~" 123456789 ") == Some(123456789 as i32 );
305
308
assert from_str(~" 00100 ") == Some(100 as T);
306
309
307
310
assert from_str(~" -1 ") == Some(-1 as T);
308
311
assert from_str(~" -3 ") == Some(-3 as T);
309
312
assert from_str(~" -10 ") == Some(-10 as T);
310
- assert from_str(~" -123456789 ") == Some(-123456789 as T );
313
+ assert i32:: from_str(~" -123456789 ") == Some(-123456789 as i32 );
311
314
assert from_str(~" -00100 ") == Some(-100 as T);
312
315
313
316
assert from_str(~" ").is_none();
@@ -320,18 +323,18 @@ fn test_parse_bytes() {
320
323
assert parse_bytes(to_bytes(~" 123 "), 10u) == Some(123 as T);
321
324
assert parse_bytes(to_bytes(~" 1001 "), 2u) == Some(9 as T);
322
325
assert parse_bytes(to_bytes(~" 123 "), 8u) == Some(83 as T);
323
- assert parse_bytes(to_bytes(~" 123 "), 16u) == Some(291 as T );
324
- assert parse_bytes(to_bytes(~" ffff"), 16u) == Some(65535 as T );
325
- assert parse_bytes(to_bytes(~" FFFF "), 16u) == Some(65535 as T );
326
+ assert i32:: parse_bytes(to_bytes(~" 123 "), 16u) == Some(291 as i32 );
327
+ assert i32:: parse_bytes(to_bytes(~" ffff"), 16u) == Some(65535 as i32 );
328
+ assert i32:: parse_bytes(to_bytes(~" FFFF "), 16u) == Some(65535 as i32 );
326
329
assert parse_bytes(to_bytes(~" z"), 36u) == Some(35 as T);
327
330
assert parse_bytes(to_bytes(~" Z "), 36u) == Some(35 as T);
328
331
329
332
assert parse_bytes(to_bytes(~" -123 "), 10u) == Some(-123 as T);
330
333
assert parse_bytes(to_bytes(~" -1001 "), 2u) == Some(-9 as T);
331
334
assert parse_bytes(to_bytes(~" -123 "), 8u) == Some(-83 as T);
332
- assert parse_bytes(to_bytes(~" -123 "), 16u) == Some(-291 as T );
333
- assert parse_bytes(to_bytes(~" -ffff"), 16u) == Some(-65535 as T );
334
- assert parse_bytes(to_bytes(~" -FFFF "), 16u) == Some(-65535 as T );
335
+ assert i32:: parse_bytes(to_bytes(~" -123 "), 16u) == Some(-291 as i32 );
336
+ assert i32:: parse_bytes(to_bytes(~" -ffff"), 16u) == Some(-65535 as i32 );
337
+ assert i32:: parse_bytes(to_bytes(~" -FFFF "), 16u) == Some(-65535 as i32 );
335
338
assert parse_bytes(to_bytes(~" -z"), 36u) == Some(-35 as T);
336
339
assert parse_bytes(to_bytes(~" -Z "), 36u) == Some(-35 as T);
337
340
@@ -380,27 +383,35 @@ fn test_int_to_str_overflow() {
380
383
fn test_int_from_str_overflow() {
381
384
let mut i8_val: i8 = 127_i8;
382
385
assert (i8::from_str(~" 127 ") == Some(i8_val));
386
+ assert (i8::from_str(~" 128 ").is_none());
383
387
384
388
i8_val += 1 as i8;
385
389
assert (i8::from_str(~" -128 ") == Some(i8_val));
390
+ assert (i8::from_str(~" -129 ").is_none());
386
391
387
392
let mut i16_val: i16 = 32_767_i16;
388
393
assert (i16::from_str(~" 32767 ") == Some(i16_val));
394
+ assert (i16::from_str(~" 32768 ").is_none());
389
395
390
396
i16_val += 1 as i16;
391
397
assert (i16::from_str(~" -32768 ") == Some(i16_val));
398
+ assert (i16::from_str(~" -32769 ").is_none());
392
399
393
400
let mut i32_val: i32 = 2_147_483_647_i32;
394
401
assert (i32::from_str(~" 2147483647 ") == Some(i32_val));
402
+ assert (i32::from_str(~" 2147483648 ").is_none());
395
403
396
404
i32_val += 1 as i32;
397
405
assert (i32::from_str(~" -2147483648 ") == Some(i32_val));
406
+ assert (i32::from_str(~" -2147483649 ").is_none());
398
407
399
408
let mut i64_val: i64 = 9_223_372_036_854_775_807_i64;
400
409
assert (i64::from_str(~" 9223372036854775807 ") == Some(i64_val));
410
+ assert (i64::from_str(~" 9223372036854775808 ").is_none());
401
411
402
412
i64_val += 1 as i64;
403
413
assert (i64::from_str(~" -9223372036854775808 ") == Some(i64_val));
414
+ assert (i64::from_str(~" -9223372036854775809 ").is_none());
404
415
}
405
416
406
417
#[test]
0 commit comments