def test_number_format():
    setlocale('en')

    td = (
          # w/o grouping
          (("%f", 1024), '1024.000000'),
          (("%f", 102), '102.000000'),
          (("%f", -42), '-42.000000'),
          (("%+f", -42), '-42.000000'),
          (("%20.f", -42), '                 -42'),
          (("%+10.f", -4200), '     -4200'),
          (("%-10.f", 4200),'4200      '),

          # with grouping
          (("%f", 1024, 1), '1,024.000000'),
          (("%f", 102, 1), '102.000000'),
          (("%f", -42, 1), '-42.000000'),
          (("%+f", -42, 1), '-42.000000'),
          (("%20.f", -42, 1), '                 -42'),
          (("%+10.f", -4200, 1), '    -4,200'),
          (("%-10.f", 4200, 1),'4,200     '),
          )
    
    for args, res in td:
        assert format(*args) == res, '%r != %r' % (format(*args), res)
def test_monetary():
    for loc in CANDIDATE_LOCALES:
        lc_norm = _normalize(loc)
        _set_locale(locale.LC_NUMERIC, lc_norm)
        setlocale(loc)
        # short
        nl = locale.localeconv()
        li = localeconv()
        for k, v in nl.items():
            assert v == li[k], '%s (%s): %s %r != %r' % (loc, lc_norm, k, v, li[k])
def test_numeric():
    for loc in CANDIDATE_LOCALES:
        lc_norm = _normalize(loc)
        _set_locale(locale.LC_NUMERIC, lc_norm)
        setlocale(loc)
        # short
        for what in (locale.ALT_DIGITS, locale.RADIXCHAR, locale.THOUSEP):
            nl = nl_langinfo(what)
            lo = locale.nl_langinfo(what)
            assert nl == lo, '%s (%s): %r != %r' % (loc, lc_norm, nl, lo)
def test_era():
    for loc in CANDIDATE_LOCALES:
        lc_norm = _normalize(loc)
        _set_locale(locale.LC_TIME, lc_norm)
        setlocale(loc)
        for what in (
                     locale.ERA, locale.ERA_D_T_FMT, locale.ERA_D_FMT,
                     ):
            nl = nl_langinfo(what)
            lo = locale.nl_langinfo(what)
            assert nl == lo, '%r != %r' % (nl, lo)
def test_date_time_format():
    for loc in CANDIDATE_LOCALES:
        lc_norm = _normalize(loc)
        _set_locale(locale.LC_TIME, lc_norm)
        setlocale(loc)
        for what in (
                     locale.D_T_FMT, locale.D_FMT, locale.T_FMT, locale.T_FMT_AMPM,
                     ):
            nl = nl_langinfo(what)
            lo = locale.nl_langinfo(what)
            assert nl == lo, '%r != %r' % (nl, lo)
def test_month_names():
    for loc in CANDIDATE_LOCALES:
        lc_norm = _normalize(loc)
        _set_locale(locale.LC_TIME, lc_norm)
        setlocale(loc)
        for what in (
                     locale.MON_1, locale.MON_2, locale.MON_3, locale.MON_4, locale.MON_5, locale.MON_6, locale.MON_7, locale.MON_8, locale.MON_9, locale.MON_10, locale.MON_11, locale.MON_12, 
                     locale.ABMON_1, locale.ABMON_2, locale.ABMON_3, locale.ABMON_4, locale.ABMON_5, locale.ABMON_6, locale.ABMON_7, locale.ABMON_8, locale.ABMON_9, locale.ABMON_10, locale.ABMON_11, locale.ABMON_12, 
                     ):
            nl = nl_langinfo(what)
            lo = locale.nl_langinfo(what)
            assert nl == lo, '%r != %r' % (nl, lo)
def test_day_names():
    for loc in CANDIDATE_LOCALES:
        lc_norm = _normalize(loc)
        _set_locale(locale.LC_TIME, lc_norm)
        setlocale(loc)
        for what in (
                     locale.DAY_1, locale.DAY_2, locale.DAY_3, locale.DAY_4, locale.DAY_5, locale.DAY_6, locale.DAY_7,
                     locale.ABDAY_1, locale.ABDAY_2, locale.ABDAY_3, locale.ABDAY_4, locale.ABDAY_5, locale.ABDAY_6, locale.ABDAY_7, 
                     ):
            nl = nl_langinfo(what)
            lo = locale.nl_langinfo(what)
            assert nl == lo, '%r != %r' % (nl, lo)
def test_conversion():
    setlocale('en')
    
    # INT
    val = 123456789

    s1 = format("%d", 123456789, 1)
    assert s1 == '123,456,789', '%r != %r' % (val, s1)
    assert val == atoi(s1), '%r != %r' % (val, atoi(s1))

    # FLOAT
    val = 123456789.14
    s1 = str(val)
    s2 = format("%.2f", val, 1)
    assert s2 == '123,456,789.14', '%r != %r' % (val, s2)
    assert val == atof(s1), '%r != %r' % (val, atof(s1))