py: Fix regress for printing of floats and #if.
Also change formating modifier in test script (it still passes with original format though).
This commit is contained in:
parent
a05f5dd952
commit
c322c5f07f
@ -788,9 +788,9 @@ mp_obj_t str_format(uint n_args, const mp_obj_t *args) {
|
||||
nlr_jump(mp_obj_new_exception_msg_varg(&mp_type_ValueError,
|
||||
"Unknown format code '%c' for object of type '%s'", type, mp_obj_get_type_str(arg)));
|
||||
}
|
||||
}
|
||||
|
||||
#if MICROPY_ENABLE_FLOAT
|
||||
} else if (arg_looks_numeric(arg)) {
|
||||
if (arg_looks_numeric(arg)) {
|
||||
if (!type) {
|
||||
|
||||
// Even though the docs say that an unspecified type is the same
|
||||
@ -828,6 +828,7 @@ mp_obj_t str_format(uint n_args, const mp_obj_t *args) {
|
||||
|
||||
flags |= PF_FLAG_PAD_NAN_INF; // '{:06e}'.format(float('-inf')) should give '-00inf'
|
||||
switch (type) {
|
||||
#if MICROPY_ENABLE_FLOAT
|
||||
case 'e':
|
||||
case 'E':
|
||||
case 'f':
|
||||
@ -841,14 +842,13 @@ mp_obj_t str_format(uint n_args, const mp_obj_t *args) {
|
||||
flags |= PF_FLAG_ADD_PERCENT;
|
||||
pfenv_print_float(&pfenv_vstr, mp_obj_get_float(arg) * 100.0F, 'f', flags, fill, width, precision);
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
nlr_jump(mp_obj_new_exception_msg_varg(&mp_type_ValueError,
|
||||
"Unknown format code '%c' for object of type 'float'",
|
||||
type, mp_obj_get_type_str(arg)));
|
||||
}
|
||||
#endif
|
||||
|
||||
} else {
|
||||
// arg doesn't look like a number
|
||||
|
||||
|
@ -34,7 +34,7 @@ functions = [('sqrt', sqrt, p_test_values),
|
||||
for function_name, function, test_vals in functions:
|
||||
print(function_name)
|
||||
for value in test_vals:
|
||||
print("{:8.7g}".format(function(value)))
|
||||
print("{:.7g}".format(function(value)))
|
||||
|
||||
binary_functions = [('copysign', copysign, [(23., 42.), (-23., 42.), (23., -42.),
|
||||
(-23., -42.), (1., 0.0), (1., -0.0)])
|
||||
@ -43,4 +43,4 @@ binary_functions = [('copysign', copysign, [(23., 42.), (-23., 42.), (23., -42.)
|
||||
for function_name, function, test_vals in binary_functions:
|
||||
print(function_name)
|
||||
for value1, value2 in test_vals:
|
||||
print("{:8.7g}".format(function(value1, value2)))
|
||||
print("{:.7g}".format(function(value1, value2)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user