Skip to content
Open
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
8951088
Add support for unicode MINUS SIGN in `int`, `float` and `complex`
johnslavik Jan 21, 2026
d3f7c80
Add some test coverage
johnslavik Feb 13, 2026
3fe1b82
Fix test
johnslavik Feb 14, 2026
973e191
Add news entry
johnslavik Feb 14, 2026
2695c06
Add C API test coverage (only `test_long_fromunicodeobject`)
johnslavik Feb 14, 2026
cf0324a
Use `:func:` in news entry for better display
johnslavik Feb 14, 2026
3855919
Update `int` docs
johnslavik Feb 14, 2026
ae6cd6c
Update `float` docs
johnslavik Feb 14, 2026
4a78b3a
Update `complex` docs
johnslavik Feb 14, 2026
f233ebd
Simplify complex `complex` docs
johnslavik Feb 14, 2026
03d24b2
Fix formatting
johnslavik Feb 14, 2026
5ce17c9
Update float syntax snippet
johnslavik Feb 14, 2026
b4b9574
Update stdtypes reference
johnslavik Feb 14, 2026
ff013f5
Clarify `complex` docs
johnslavik Feb 14, 2026
ca6eca0
Slightly changed "syntax" used in `float` production list
johnslavik Feb 14, 2026
26dadc5
Fix alternative used in `complex` docs, I think it was incorrect
johnslavik Feb 14, 2026
6391d27
Parenthesize consistently
johnslavik Feb 14, 2026
f7c3fa7
Parenthesize consistently vol. 2
johnslavik Feb 14, 2026
0d519f4
Empty commit to try to skip incremental lint
johnslavik Feb 14, 2026
6c5994a
Test NaNs properly
johnslavik Feb 14, 2026
0e7110c
Fix trailing whitespace (was confused)
johnslavik Feb 14, 2026
199a879
Parenthesize in news entry too
johnslavik Feb 14, 2026
a9874e7
Use `.. versionchanged:: next`
johnslavik Feb 15, 2026
53c7e97
Add a *What's New* entry
johnslavik Feb 21, 2026
d349618
Merge branch 'main' to fix conflicts
johnslavik Feb 21, 2026
8b4d9b1
Make `versionchanged` entry for `float` more fitting
johnslavik Feb 25, 2026
4df638d
Add more tests
johnslavik Mar 2, 2026
f3dccd0
Correct the grammar reference
johnslavik Mar 2, 2026
9353f09
Keep character in grammar reference
johnslavik Mar 2, 2026
3c2e361
Adjust docs to not say "ASCII"
ambv Mar 12, 2026
301eb4b
Remove more mentions of other signs being ASCII from docs
johnslavik Mar 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Test NaNs properly
  • Loading branch information
johnslavik committed Feb 14, 2026
commit 6c5994a3f97170697b939954e38b2dc790ded57b
12 changes: 12 additions & 0 deletions Lib/test/test_float.py
Original file line number Diff line number Diff line change
Expand Up @@ -1114,30 +1114,40 @@ def test_nan_from_str(self):
self.assertTrue(isnan(float("nan")))
self.assertTrue(isnan(float("+nan")))
self.assertTrue(isnan(float("-nan")))
self.assertTrue(isnan(float("\N{MINUS SIGN}nan")))

self.assertEqual(repr(float("nan")), "nan")
self.assertEqual(repr(float("+nan")), "nan")
self.assertEqual(repr(float("-nan")), "nan")
self.assertEqual(repr(float("\N{MINUS SIGN}nan")), "nan")

self.assertEqual(repr(float("NAN")), "nan")
self.assertEqual(repr(float("+NAn")), "nan")
self.assertEqual(repr(float("-NaN")), "nan")
self.assertEqual(repr(float("\N{MINUS SIGN}NaN")), "nan")

self.assertEqual(str(float("nan")), "nan")
self.assertEqual(str(float("+nan")), "nan")
self.assertEqual(str(float("-nan")), "nan")
self.assertEqual(str(float("\N{MINUS SIGN}nan")), "nan")

self.assertRaises(ValueError, float, "nana")
self.assertRaises(ValueError, float, "+nana")
self.assertRaises(ValueError, float, "-nana")
self.assertRaises(ValueError, float, "\N{MINUS SIGN}nana")
self.assertRaises(ValueError, float, "na")
self.assertRaises(ValueError, float, "+na")
self.assertRaises(ValueError, float, "-na")
self.assertRaises(ValueError, float, "\N{MINUS SIGN}na")

self.assertRaises(ValueError, float, "++nan")
self.assertRaises(ValueError, float, "-+NAN")
self.assertRaises(ValueError, float, "+-NaN")
self.assertRaises(ValueError, float, "--nAn")
self.assertRaises(ValueError, float, "\N{MINUS SIGN}+NAN")
self.assertRaises(ValueError, float, "-\N{MINUS SIGN}nAn")
self.assertRaises(ValueError, float, "\N{MINUS SIGN}-nAn")
self.assertRaises(ValueError, float, "\N{MINUS SIGN}\N{MINUS SIGN}nAn")

def test_nan_as_str(self):
self.assertEqual(repr(1e300 * 1e300 * 0), "nan")
Expand All @@ -1149,11 +1159,13 @@ def test_nan_as_str(self):
def test_inf_signs(self):
self.assertEqual(copysign(1.0, float('inf')), 1.0)
self.assertEqual(copysign(1.0, float('-inf')), -1.0)
self.assertEqual(copysign(1.0, float('\N{MINUS SIGN}inf')), -1.0)

def test_nan_signs(self):
# The sign of float('nan') should be predictable.
self.assertEqual(copysign(1.0, float('nan')), 1.0)
self.assertEqual(copysign(1.0, float('-nan')), -1.0)
self.assertEqual(copysign(1.0, float('\N{MINUS SIGN}nan')), -1.0)


fromHex = float.fromhex
Expand Down
Loading