add units to shopw digit length reabale

This commit is contained in:
Dominik Krenn 2025-11-05 11:15:33 +01:00
parent 185962b4af
commit 642f79e1ff

View File

@ -2,11 +2,19 @@ from __future__ import annotations
import curses import curses
from pathlib import Path from pathlib import Path
from typing import List from typing import List, Tuple
from .colors import UIColors from .colors import UIColors
_DIGIT_UNITS: List[Tuple[int, str]] = [
(10**12, "T digits"),
(10**9, "G digits"),
(10**6, "M digits"),
(10**3, "K digits"),
]
class HeaderView: class HeaderView:
"""Top panel containing summary information.""" """Top panel containing summary information."""
@ -28,9 +36,10 @@ class HeaderView:
cols = max(1, cols) cols = max(1, cols)
usable = max(1, cols - 1) usable = max(1, cols - 1)
bar = "" * usable bar = "" * usable
digits_line = self._format_digits_line(step, digits_len)
lines = [ lines = [
" Collatz Stream Visualizer ", " Collatz Stream Visualizer ",
f" Step {step:,} • Digits {digits_len:,}", digits_line,
f" Elapsed {elapsed:8.2f}s • Avg {avg_step:8.5f}s", f" Elapsed {elapsed:8.2f}s • Avg {avg_step:8.5f}s",
f" Current calc {current_calc:6.2f}s {'' if computing else ''} • Last {last_calc:6.2f}s", f" Current calc {current_calc:6.2f}s {'' if computing else ''} • Last {last_calc:6.2f}s",
" ▲ green = 3n+1 • ▼ red = /2 • ↑↓ number scroll • PgUp/PgDn logs • q quit", " ▲ green = 3n+1 • ▼ red = /2 • ↑↓ number scroll • PgUp/PgDn logs • q quit",
@ -50,6 +59,14 @@ class HeaderView:
self.win.noutrefresh() self.win.noutrefresh()
@staticmethod
def _format_digits_line(step: int, digits_len: int) -> str:
for threshold, label in _DIGIT_UNITS:
if digits_len >= threshold:
scaled = digits_len / float(threshold)
return f" Step {step:,}{scaled:,.2f} {label}"
return f" Step {step:,} • Digits {digits_len:,}"
class GraphView: class GraphView:
"""Single-row sparkline showing how each step transformed the value.""" """Single-row sparkline showing how each step transformed the value."""