Damien George
e1e7657277
py/formatfloat: Fix further cases of buffer overflow in formatting.
Includes extensive test cases to catch hopefully all cases where
buffer might overflow.
9 years ago
Damien George
cea6cf8a5e
py/formatfloat: Fix buffer overflow when formatting tiny numbers.
9 years ago
Paul Sokolovsky
d973c1bc12
test/string_format_fp30: Variant of string_format for 30-bit stuffed float.
9 years ago
Paul Sokolovsky
50e0a7b9d4
test/float2int_fp30: Variant of float2int for 30-bit stuffed float.
9 years ago
Paul Sokolovsky
d4315a6caf
float/string_format: Split large test in 2.
9 years ago
Paul Sokolovsky
dc587a3623
test/float2int: Make test output clearer.
9 years ago
Damien George
3b936a5f4c
tests: Fix math_fun_special test so it passes with single prec float.
9 years ago
Damien George
b1fa907d56
tests: Allow float tests to run when MATH_SPECIAL_FUNCTIONS is disabled.
9 years ago
Michael Buesch
17298af61e
py/modmath: Add domain error checking to sqrt, log, log2, log10.
These functions will raise 'ValueError: math domain error' on invalid
input.
9 years ago
Paul Sokolovsky
b64e0575fd
tests/float/string_format: Add testcase for incorrect rounding for %f.
9 years ago
Damien George
e5635f4ab3
py: Catch all cases of integer (big and small) division by zero.
9 years ago
Damien George
a81539db25
tests: Add further tests for mpz code.
9 years ago
Dave Hylands
9d6128acdc
stmhal: fix single precision float printing error
Fixes #1435 .
9 years ago
Damien George
2b000474d9
py/lexer: Properly classify floats that look like hex numbers.
Eg 0e0 almost looks like a hex number but in fact is a float.
9 years ago
Damien George
1d350b8ac6
tests: Add a few tests for bool, bytearray, float to improve coverage.
9 years ago
Damien George
d007cb8903
tests: Add more tests to improve coverage, mostly testing exceptions.
9 years ago
Sebastian Plamauer
1e8ca3a3cf
modbuiltins: Implement round() to precision.
9 years ago
Damien George
6f49520042
py: Implement second arg for math.log (optional value for base).
10 years ago
Damien George
9ede4dcfbb
tests: Add some tests for printing floats to improve coverage.
10 years ago
Damien George
79474c6b16
py: Remove unnecessary extra handling of padding of nan/inf.
C's printf will pad nan/inf differently to CPython. Our implementation
originally conformed to C, now it conforms to CPython's way.
Tests for this are also added in this patch.
10 years ago
stijn
861670ba2a
py: Implement mp_format_float for doubles and use where appropriate
This allows using (almost) the same code for printing floats everywhere,
removes the dependency on sprintf and uses just snprintf and
applies an msvc-specific fix for snprintf in a single place so
nan/inf are now printed correctly.
10 years ago
stijn
709955b601
py: Fix printing of complex number when imaginary part is nan
10 years ago
Paul Sokolovsky
3d3ef36e97
modstruct: Rename module to "ustruct", to allow full Python-level impl.
10 years ago
Damien George
956d765786
py: Fix printing of "inf" and "nan" floating point values.
10 years ago
Damien George
97abe22963
tests: Add tests to exercise lexer; and some more complex number tests.
10 years ago
Damien George
9dd3640464
tests: Add missing tests for builtins, and many other things.
10 years ago
Damien George
214179b430
tests: Add tests for SyntaxError, TypeError, and other missing things.
This is intended to improve coverage of the test suite.
10 years ago
Damien George
f256cfef4f
tests: Add some more tests for complex numbers and ure module.
10 years ago
Damien George
af43565322
tests: Add tests for things that are not already tested.
The aim here is to improve coverage of the code.
10 years ago
Damien George
086a7616dd
tests: Add tests for boundmeth; and bignum cmp, unary, float, error.
10 years ago
stijn
25f1264699
tests: Skip special math fun tests when math module exists but not funs.
10 years ago
Damien George
24ffb8e876
tests: Add tests for builtins: all, any, sum, abs.
10 years ago
Damien George
2af921fb51
tests: Add tests for op special meths, ubinascii, complex.
10 years ago
Damien George
5c047b97f2
tests: Add test for math special functions.
10 years ago
Damien George
7d414a1b52
py: Parse big-int/float/imag constants directly in parser.
Previous to this patch, a big-int, float or imag constant was interned
(made into a qstr) and then parsed at runtime to create an object each
time it was needed. This is wasteful in RAM and not efficient. Now,
these constants are parsed straight away in the parser and turned into
objects. This allows constants with large numbers of digits (so
addresses issue #1103 ) and takes us a step closer to #722 .
10 years ago
Damien George
ae3150cb5c
tests: Add test for cmath module.
10 years ago
Damien George
26c0b155fa
tests: Make float/int_power.py pass on pyboard/single prec float.
10 years ago
Damien George
12c66be2b8
tests: Add some tests to improve coverage.
Used gcov to find some parts of vm.c, runtime.c, obj.c that were not
covered by any tests. Still need to use gcov more thoroughly.
10 years ago
David Steinberg
0b3014ce3a
py: Add support for floats in mp_binary_{get,set}_val()
- This then provides support for floats in the struct package
10 years ago
David Steinberg
4c1a7e0d6a
tests: Update float2int tests for new range classifications
- Tests vary based on build configuration (32/64-bit and internal int type).
- Added tests for exceptions raised on overflow of int type.
10 years ago
Damien George
6d1f5070ce
lib/libm: Add frexp and modf functions; use in stmhal; add tests.
Addresses issue #1081 .
10 years ago
Damien George
19b3fea6a8
tests: Separate out test cases that rely on float support to float/ dir.
10 years ago
Damien George
ad2307c92c
py: Temporary fix for conversion of float to int when fits in small int.
Addresses issue #1044 (see also #1040 ). Could do with a better fix.
10 years ago
Damien George
6fd4b36bc5
py: Raise exception if trying to convert inf/nan to int.
10 years ago
David Steinberg
6e0b6d02db
py: Fix float to int conversion for large exponents.
10 years ago
Paul Sokolovsky
2c75665445
objstr: Fix %d-formatting of floats.
10 years ago
Paul Sokolovsky
12033df511
py: Partially fix float to int conversion.
This fixes conversion when float type has more mantissa bits than small int,
and float value has small exponent. This is for example the case of 32-bit
platform using doubles, and converting value of time.time(). Conversion of
floats with larg exponnet is still not handled correctly.
10 years ago
Damien George
f04329e93b
lib/libm: Add acosh, asinh, atanh, tan; get working with stmhal.
acoshf, asinhf, atanhf were added from musl. mathsincos.c was
split up into its original, separate files (from newlibe-nano-2).
tan was added.
All of the important missing float functions are now implemented,
and pyboard now passes tests/float/math_fun.py (finally!).
10 years ago
Damien George
7288403b9b
tests: Split out float test from builtin_round.py.
10 years ago
Damien George
c9f8f653ad
py: Add support for float/double arrays in array module.
Addresses issue #981 .
10 years ago