@@ -595,30 +595,33 @@ mod tests {
595
595
596
596
#[ test]
597
597
fn special_cases ( ) {
598
- // / 20. (anything) ** 1 is (anything)
599
598
// One as the exponent:
600
599
// (anything ^ 1 should be anything - i.e. the base)
601
600
test_sets ( ALL , & |v : f64 | pow ( v, 1.0 ) , & |v : f64 | v) ;
602
601
603
- // / 21. (anything) ** -1 is 1/(anything)
604
602
// Negative One as the exponent:
605
603
// (anything ^ -1 should be 1/anything)
606
604
test_sets ( ALL , & |v : f64 | pow ( v, -1.0 ) , & |v : f64 | 1.0 / v) ;
607
605
608
- // / 22. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)
609
606
// Factoring -1 out:
610
607
// (negative anything ^ integer should be (-1 ^ integer) * (positive anything ^ integer))
611
- & [ POS_ZERO , NEG_ZERO , POS_ONE , NEG_ONE , POS_EVENS , NEG_EVENS ] . iter ( ) . for_each ( |int_set| int_set. iter ( ) . for_each ( |int| {
612
- test_sets ( ALL , & |v : f64 | pow ( -v, * int) , & |v : f64 | pow ( -1.0 , * int) * pow ( v, * int) ) ;
613
- } ) ) ;
608
+ & [ POS_ZERO , NEG_ZERO , POS_ONE , NEG_ONE , POS_EVENS , NEG_EVENS ]
609
+ . iter ( )
610
+ . for_each ( |int_set| {
611
+ int_set. iter ( ) . for_each ( |int| {
612
+ test_sets ( ALL , & |v : f64 | pow ( -v, * int) , & |v : f64 | {
613
+ pow ( -1.0 , * int) * pow ( v, * int)
614
+ } ) ;
615
+ } )
616
+ } ) ;
614
617
615
- // / 23. (-anything except 0 and inf) ** (non-integer) is NAN
616
618
// Negative base (imaginary results):
617
619
// (-anything except 0 and Infinity ^ non-integer should be NAN)
618
- & NEG [ 1 ..( NEG . len ( ) -1 ) ] . iter ( ) . for_each ( |set| set. iter ( ) . for_each ( |val| {
619
- test_sets ( & ALL [ 3 ..7 ] , & |v : f64 | pow ( * val, v) , & |_| NAN ) ;
620
- } ) ) ;
621
-
620
+ & NEG [ 1 ..( NEG . len ( ) - 1 ) ] . iter ( ) . for_each ( |set| {
621
+ set. iter ( ) . for_each ( |val| {
622
+ test_sets ( & ALL [ 3 ..7 ] , & |v : f64 | pow ( * val, v) , & |_| NAN ) ;
623
+ } )
624
+ } ) ;
622
625
}
623
626
624
627
#[ test]
0 commit comments