@@ -441,134 +441,140 @@ impl<'self, A> Iterator<&'self mut A> for OptionMutIterator<'self, A> {
441
441
}
442
442
}
443
443
444
- #[ test]
445
- fn test_unwrap_ptr ( ) {
446
- unsafe {
447
- let x = ~0 ;
448
- let addr_x: * int = :: cast:: transmute ( & * x) ;
444
+ #[ cfg( test) ]
445
+ mod tests {
446
+ use super :: * ;
447
+ use util;
448
+
449
+ #[ test]
450
+ fn test_unwrap_ptr ( ) {
451
+ unsafe {
452
+ let x = ~0 ;
453
+ let addr_x: * int = :: cast:: transmute ( & * x) ;
454
+ let opt = Some ( x) ;
455
+ let y = opt. unwrap ( ) ;
456
+ let addr_y: * int = :: cast:: transmute ( & * y) ;
457
+ assert_eq ! ( addr_x, addr_y) ;
458
+ }
459
+ }
460
+
461
+ #[ test]
462
+ fn test_unwrap_str ( ) {
463
+ let x = ~"test";
464
+ let addr_x = x. as_imm_buf ( |buf, _len| buf) ;
449
465
let opt = Some ( x) ;
450
466
let y = opt. unwrap ( ) ;
451
- let addr_y: * int = :: cast :: transmute ( & * y ) ;
467
+ let addr_y = y . as_imm_buf ( |buf , _len| buf ) ;
452
468
assert_eq ! ( addr_x, addr_y) ;
453
469
}
454
- }
455
470
456
- #[ test]
457
- fn test_unwrap_str ( ) {
458
- let x = ~"test";
459
- let addr_x = x. as_imm_buf ( |buf, _len| buf) ;
460
- let opt = Some ( x) ;
461
- let y = opt. unwrap ( ) ;
462
- let addr_y = y. as_imm_buf ( |buf, _len| buf) ;
463
- assert_eq ! ( addr_x, addr_y) ;
464
- }
471
+ #[ test]
472
+ fn test_unwrap_resource ( ) {
473
+ struct R {
474
+ i : @mut int ,
475
+ }
465
476
466
- #[ test]
467
- fn test_unwrap_resource ( ) {
468
- struct R {
469
- i : @mut int ,
470
- }
477
+ #[ unsafe_destructor]
478
+ impl :: ops:: Drop for R {
479
+ fn drop ( & self ) { * ( self . i ) += 1 ; }
480
+ }
471
481
472
- #[ unsafe_destructor]
473
- impl :: ops:: Drop for R {
474
- fn drop ( & self ) { * ( self . i ) += 1 ; }
475
- }
482
+ fn R ( i : @mut int ) -> R {
483
+ R {
484
+ i : i
485
+ }
486
+ }
476
487
477
- fn R ( i : @mut int ) -> R {
478
- R {
479
- i : i
488
+ let i = @mut 0 ;
489
+ {
490
+ let x = R ( i) ;
491
+ let opt = Some ( x) ;
492
+ let _y = opt. unwrap ( ) ;
480
493
}
494
+ assert_eq ! ( * i, 1 ) ;
481
495
}
482
496
483
- let i = @mut 0 ;
484
- {
485
- let x = R ( i) ;
486
- let opt = Some ( x) ;
487
- let _y = opt. unwrap ( ) ;
497
+ #[ test]
498
+ fn test_option_dance( ) {
499
+ let x = Some ( ( ) ) ;
500
+ let mut y = Some ( 5 ) ;
501
+ let mut y2 = 0 ;
502
+ for x. iter( ) . advance |_x| {
503
+ y2 = y. take_unwrap( ) ;
504
+ }
505
+ assert_eq ! ( y2, 5 ) ;
506
+ assert ! ( y. is_none( ) ) ;
507
+ }
508
+ #[ test] #[ should_fail] #[ ignore( cfg( windows) ) ]
509
+ fn test_option_too_much_dance( ) {
510
+ let mut y = Some( util:: NonCopyable ) ;
511
+ let _y2 = y. take_unwrap( ) ;
512
+ let _y3 = y. take_unwrap( ) ;
513
+ }
514
+
515
+ #[ test]
516
+ fn test_option_while_some( ) {
517
+ let mut i = 0 ;
518
+ do Some ( 10 ) . while_some |j| {
519
+ i += 1 ;
520
+ if ( j > 0 ) {
521
+ Some ( j-1 )
522
+ } else {
523
+ None
524
+ }
525
+ }
526
+ assert_eq ! ( i, 11 ) ;
488
527
}
489
- assert_eq ! ( * i, 1 ) ;
490
- }
491
528
492
- #[ test]
493
- fn test_option_dance( ) {
494
- let x = Some ( ( ) ) ;
495
- let mut y = Some ( 5 ) ;
496
- let mut y2 = 0 ;
497
- for x. iter( ) . advance |_x| {
498
- y2 = y. take_unwrap( ) ;
529
+ #[ test]
530
+ fn test_get_or_zero( ) {
531
+ let some_stuff = Some ( 42 ) ;
532
+ assert_eq ! ( some_stuff. get_or_zero( ) , 42 ) ;
533
+ let no_stuff: Option < int > = None ;
534
+ assert_eq ! ( no_stuff. get_or_zero( ) , 0 ) ;
499
535
}
500
- assert_eq ! ( y2, 5 ) ;
501
- assert ! ( y. is_none( ) ) ;
502
- }
503
- #[ test] #[ should_fail] #[ ignore( cfg( windows) ) ]
504
- fn test_option_too_much_dance( ) {
505
- let mut y = Some( util:: NonCopyable ) ;
506
- let _y2 = y. take_unwrap( ) ;
507
- let _y3 = y. take_unwrap( ) ;
508
- }
509
536
510
- #[ test]
511
- fn test_option_while_some( ) {
512
- let mut i = 0 ;
513
- do Some ( 10 ) . while_some |j| {
514
- i += 1 ;
515
- if ( j > 0 ) {
516
- Some ( j-1 )
517
- } else {
518
- None
519
- }
537
+ #[ test]
538
+ fn test_filtered( ) {
539
+ let some_stuff = Some ( 42 ) ;
540
+ let modified_stuff = some_stuff. filtered( |& x| { x < 10 } ) ;
541
+ assert_eq ! ( some_stuff. get( ) , 42 ) ;
542
+ assert ! ( modified_stuff. is_none( ) ) ;
520
543
}
521
- assert_eq ! ( i, 11 ) ;
522
- }
523
544
524
- #[ test]
525
- fn test_get_or_zero( ) {
526
- let some_stuff = Some ( 42 ) ;
527
- assert_eq ! ( some_stuff. get_or_zero( ) , 42 ) ;
528
- let no_stuff: Option < int > = None ;
529
- assert_eq ! ( no_stuff. get_or_zero( ) , 0 ) ;
530
- }
545
+ #[ test ]
546
+ fn test_iter ( ) {
547
+ let val = 5 ;
531
548
532
- #[ test]
533
- fn test_filtered( ) {
534
- let some_stuff = Some ( 42 ) ;
535
- let modified_stuff = some_stuff. filtered( |& x| { x < 10 } ) ;
536
- assert_eq ! ( some_stuff. get( ) , 42 ) ;
537
- assert ! ( modified_stuff. is_none( ) ) ;
538
- }
549
+ let x = Some ( val) ;
550
+ let mut it = x. iter ( ) ;
539
551
540
- #[ test ]
541
- fn test_iter ( ) {
542
- let val = 5 ;
543
-
544
- let x = Some ( val) ;
545
- let mut it = x. iter ( ) ;
546
-
547
- assert_eq ! ( it. size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
548
- assert_eq ! ( it. next( ) , Some ( & val) ) ;
549
- assert_eq ! ( it. size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
550
- assert ! ( it. next( ) . is_none( ) ) ;
551
- }
552
+ assert_eq ! ( it. size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
553
+ assert_eq ! ( it. next( ) , Some ( & val) ) ;
554
+ assert_eq ! ( it. size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
555
+ assert ! ( it. next( ) . is_none( ) ) ;
556
+ }
552
557
553
- #[ test]
554
- fn test_mut_iter ( ) {
555
- let val = 5 ;
556
- let new_val = 11 ;
558
+ #[ test]
559
+ fn test_mut_iter ( ) {
560
+ let val = 5 ;
561
+ let new_val = 11 ;
557
562
558
- let mut x = Some ( val) ;
559
- let mut it = x. mut_iter ( ) ;
563
+ let mut x = Some ( val) ;
564
+ let mut it = x. mut_iter ( ) ;
560
565
561
- assert_eq ! ( it. size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
566
+ assert_eq ! ( it. size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
562
567
563
- match it. next ( ) {
564
- Some ( interior) => {
565
- assert_eq ! ( * interior, val) ;
566
- * interior = new_val;
567
- assert_eq ! ( x, Some ( new_val) ) ;
568
+ match it. next ( ) {
569
+ Some ( interior) => {
570
+ assert_eq ! ( * interior, val) ;
571
+ * interior = new_val;
572
+ assert_eq ! ( x, Some ( new_val) ) ;
573
+ }
574
+ None => assert ! ( false ) ,
568
575
}
569
- None => assert ! ( false ) ,
570
- }
571
576
572
- assert_eq ! ( it. size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
573
- assert ! ( it. next( ) . is_none( ) ) ;
577
+ assert_eq ! ( it. size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
578
+ assert ! ( it. next( ) . is_none( ) ) ;
579
+ }
574
580
}
0 commit comments