Testing Gapminder Script

test_gapminder.py
import pytest
import pandas as pd
from clean_gapminder import number_to_float, format_numbers

@pytest.mark.parametrize("input_value, expected", [
    ("10k", 10000.0),
    ("1.5M", 1500000.0),
    ("2B", 2000000000.0),
    (1000, 1000), 
    ("500", 500),
    ('test', None)
])
def test_number_to_float(input_value, expected):
    if isinstance(expected, float):
        assert number_to_float(input_value) == pytest.approx(expected)
    else:
        assert number_to_float(input_value) == expected

def test_format_numbers():
    df = pd.DataFrame({
        'gdp': ['1M', '2M'],
        'pop': ['10k', '20k'],
        'year': ['2000', '2001']
    })
    formatted = format_numbers(df)
    assert formatted['gdp'].tolist() == [1_000_000.0, 2_000_000.0]
    assert formatted['pop'].tolist() == [10000, 20000]
    assert formatted['year'].dtype == 'int64'