object size measurement function, related to #7

This commit is contained in:
2026-03-23 12:33:46 +01:00
parent 320ff92c7d
commit 7e6e3f3beb
2 changed files with 95 additions and 0 deletions

57
tests/test_system.py Normal file
View File

@@ -0,0 +1,57 @@
import dataclasses as dc
import sys
import pytest
from dopt_basics import system
@dc.dataclass()
class _TData:
dic: dict[str, str]
dic2: dict[str, dict[str, int]]
lst: list[int]
tup: tuple[str, ...]
string: str
id_: int
@pytest.fixture(scope="module")
def TData() -> _TData:
return _TData(
{"test": "test", "test2": "test"},
{"test": {"prop1": 3, "prop2": 500}},
[1, 2, 3, 4, 5, 6, 7, 8, 9],
("test", "test", "test", "test", "test", "test", "test"),
"This is one test string",
1234,
)
@pytest.fixture(scope="module")
def TData_real_size(TData) -> int:
return 1435
def test_obj_size(TData, TData_real_size):
ret = system.obj_size(TData)
assert ret == TData_real_size
def test_obj_size_kb(TData, TData_real_size):
ret = system.obj_size(TData, unit="kb")
assert ret == pytest.approx(TData_real_size / 1024)
def test_obj_size_mb(TData, TData_real_size):
ret = system.obj_size(TData, unit="mb")
assert ret == pytest.approx(TData_real_size / 1024**2)
def test_obj_size_gb(TData, TData_real_size):
ret = system.obj_size(TData, unit="gb")
assert ret == pytest.approx(TData_real_size / 1024**3)