(real:->string i radix))
((real:negative? i)
(string-append "-" (positive-case (real:negate i))))
+ ((and (flo:flonum? i)
+ (flo:zero? i)
+ (flo:negative? (flo:copysign 1. i)))
+ ;; Not negative, but positive case gives `+-0.'.
+ "-0.")
(else
(string-append "+" (positive-case i)))))
(if imaginary-unit-j? "j" "i"))
("123" ,assert-exact-integer)
("1/34" ,assert-exact-rational)
("123+456i" ,assert-complex-nonreal)
- ("-0.i" ,assert-real xfail) ;real?
- ("0.-0.i" ,assert-real xfail) ;real?
- ("-0.-0.i" ,assert-real xfail) ;real?
+ ("-0.i" ,assert-real) ;real?
+ ("0.-0.i" ,assert-real) ;real?
+ ("-0.-0.i" ,assert-real) ;real?
("1.23" ,assert-flonum)
("+inf.0i" ,assert-complex-nonreal)
("-inf.0i" ,assert-complex-nonreal)