• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jqueguiner / num2words2 / 25218394358
95%
master: 94%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 01 May 2026 02:36PM UTC
Jobs 6
Files 337
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 May 2026 02:35PM UTC coverage: 95.198% (-0.001%) from 95.199%
25218394358

push

github

web-flow
feat(en_aero): ICAO/aviation English digit-by-digit reading (#114)

Implements savoirfairelinux/num2words#478 — a new lang='en_AERO'
that reads numbers digit-by-digit using ICAO Annex 10 vol II
respellings (3→tree, 4→fower, 5→fife, 7→seven, 9→niner). Goal is
unambiguous transmission over noisy radio links, matching how pilots
and ATC actually enunciate numerals on voice channels.

  num2words(5739, lang='en_AERO')        # 'fife seven tree niner'
  num2words(1971, lang='en_AERO', to='year')  # 'one niner seven one'
  num2words(127.5, lang='en_AERO')       # 'one two seven decimal fife'
  num2words(-42, lang='en_AERO')         # 'minus fower two'

Implementation:
  - num2words2/lang_EN_AERO.py — Num2Word_EN_AERO inherits from
    Num2Word_EN, overrides to_cardinal/to_year for digit-by-digit
    reading, and delegates ordinal / fraction / currency / cheque
    to a sibling Num2Word_EN instance (ICAO doesn't standardise
    those, and otherwise the digit-by-digit cardinal would leak
    into the ordinal/fraction builders and produce broken output
    like "one treeth" instead of "one third").
  - Registered in CONVERTER_CLASSES under 'en_AERO'; resolves
    case-insensitively and tolerates dash/underscore separators
    via the existing dispatcher fallback ('en-aero', 'en_aero',
    'en-AERO' all map to the same converter).

Decimal mark reads as "decimal" (ICAO standard).
Negative numbers prefix with "minus".

Tests: tests/test_478_en_aero.py — 13 cases covering the digit
table, multi-digit composition, year format, decimals, negatives,
string/dash/underscore lookup variants, and the delegation path
for fractions (where 'en_AERO' falls back to plain English so the
fraction reads "one third" not "one treeth").

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

8010 of 8796 branches covered (91.06%)

Branch coverage included in aggregate %.

95 of 98 new or added lines in 2 files covered. (96.94%)

42260 of 44010 relevant lines covered (96.02%)

5.76 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
93.33
num2words2/lang_EN_AERO.py
1
95.92
tests/test_478_en_aero.py
Jobs
ID Job ID Ran Files Coverage
1 3.11 - 25218394358.1 01 May 2026 02:37PM UTC 337
95.2
GitHub Action Run
2 3.13 - 25218394358.2 01 May 2026 02:37PM UTC 337
95.2
GitHub Action Run
3 3.10 - 25218394358.3 01 May 2026 02:37PM UTC 337
95.2
GitHub Action Run
4 3.15 - 25218394358.4 01 May 2026 02:37PM UTC 337
95.2
GitHub Action Run
5 3.14 - 25218394358.5 01 May 2026 02:37PM UTC 337
95.2
GitHub Action Run
6 3.12 - 25218394358.6 01 May 2026 02:37PM UTC 337
95.2
GitHub Action Run
Source Files on build 25218394358
  • Tree
  • List 337
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • fbd2b50a on github
  • Prev Build on main (#25217939620)
  • Next Build on main (#25218980885)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc