assert_eq('abc'.format(), "abc")

# named arguments
assert_eq('x{key}x'.format(key = 2), "x2x")
assert_eq('x{key}x'.format(key = 'abc'), "xabcx")
assert_eq('{a}{b}{a}{b}'.format(a = 3, b = True), "3True3True")
assert_eq('{a}{b}{a}{b}'.format(a = 3, b = True), "3True3True")
assert_eq('{s1}{s2}'.format(s1 = ['a'], s2 = 'a'), "[\"a\"]a")
assert_eq('{a}'.format(a = '$'), "$")
assert_eq('{a}'.format(a = '$a'), "$a")
assert_eq('{a}$'.format(a = '$a'), "$a$")
assert_eq('{(}'.format(**{'(': 2}), "2")

# curly brace escaping
assert_eq('{{}}'.format(), "{}")
assert_eq('{{}}'.format(42), "{}")
assert_eq('{{ }}'.format(), "{ }")
assert_eq('{{ }}'.format(42), "{ }")
assert_eq('{{{{}}}}'.format(), "{{}}")
assert_eq('{{{{}}}}'.format(42), "{{}}")
assert_eq('{{0}}'.format(42), "{0}")
assert_eq('{{}}'.format(42), "{}")
assert_eq('{{{}}}'.format(42), "{42}")
assert_eq('{{ '.format(42), "{ " )
assert_eq(' }}'.format(42), " }")
assert_eq('{{ {}'.format(42), "{ 42")
assert_eq('{} }}'.format(42), "42 }")
assert_eq('{{0}}'.format(42), "{0}")
assert_eq('{{{0}}}'.format(42), "{42}")
assert_eq('{{ 0'.format(42), "{ 0")
assert_eq('0 }}'.format(42), "0 }")
assert_eq('{{ {0}'.format(42), "{ 42")
assert_eq('{0} }}'.format(42), "42 }")
assert_eq('{{test}}'.format(test = 42), "{test}")
assert_eq('{{{test}}}'.format(test = 42), "{42}")
assert_eq('{{ test'.format(test = 42), "{ test")
assert_eq('test }}'.format(test = 42), "test }")
assert_eq('{{ {test}'.format(test = 42), "{ 42")
assert_eq('{test} }}'.format(test = 42), "42 }")


# Automatic positionals
assert_eq('{}, {} {} {} test'.format('hi', 'this', 'is', 'a'), "hi, this is a test")
assert_eq('skip some {}'.format('arguments', 'obsolete', 'deprecated'), "skip some arguments")

# with numbered positions
assert_eq('{0}, {1} {2} {3} test'.format('hi', 'this', 'is', 'a'), "hi, this is a test")
assert_eq('{3}, {2} {1} {0} test'.format('a', 'is', 'this', 'hi'), "hi, this is a test")
assert_eq('skip some {0}'.format('arguments', 'obsolete', 'deprecated'), "skip some arguments")
assert_eq('{0} can be reused: {0}'.format('this', 'obsolete'), "this can be reused: this")

# Mixed fields
assert_eq('{test} and {}'.format(2, test = 1), "1 and 2")
assert_eq('{test} and {0}'.format(2, test = 1), "1 and 2")

---
'{{}'.format(1) ### Found '}' without matching '{'
---
'{}}'.format(1) ### Found '}' without matching '{'
---
'{0}'.format() ### No replacement found for index 0
---
'{0} and {1}'.format('this') ### No replacement found for index 1
---
'{0} and {2}'.format('this', 'that') ### No replacement found for index 2
---
'{-0} and {-1}'.format('this', 'that') ### No replacement found for index -1
---
'{0,1} and {1}'.format('this', 'that') ### Invalid character ',' inside replacement field
---
'{0.1} and {1}'.format('this', 'that') ### Invalid character '.' inside replacement field
---
'{}'.format() ### No replacement found for index 0
---
'{} and {}'.format('this') ### No replacement found for index 1
---
'{test} and {}'.format(test = 1, 2) ### positional argument is misplaced (positional arguments come first)
---
'{test} and {0}'.format(test = 1, 2) ### positional argument is misplaced (positional arguments come first)
---
'{} and {1}'.format(1, 2) ### Cannot mix manual and automatic numbering of positional fields
---
'{1} and {}'.format(1, 2) ### Cannot mix manual and automatic numbering of positional fields
---
'{test.}'.format(test = 1) ### Invalid character '.' inside replacement field
---
'{test[}'.format(test = 1) ### Invalid character '\[' inside replacement field
---
'{test,}'.format(test = 1) ### Invalid character ',' inside replacement field
---
'{ {} }'.format(42) ### Nested replacement fields are not supported
---
'{a}{b}'.format(a = 5) ### Missing argument 'b'
