1
0

042_str_mod.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Test str.__mod__ (old-style % formatting)
  2. # Test %s - string formatting
  3. assert "hello %s" % "world" == "hello world"
  4. assert "%s" % 123 == "123"
  5. assert "%s %s" % ("a", "b") == "a b"
  6. assert "name: %s, age: %s" % ("Alice", 30) == "name: Alice, age: 30"
  7. # Test %d - integer formatting
  8. assert "%d" % 42 == "42"
  9. assert "%d" % -123 == "-123"
  10. assert "%d" % 0 == "0"
  11. assert "count: %d" % 100 == "count: 100"
  12. # Test %i - integer formatting (same as %d)
  13. assert "%i" % 42 == "42"
  14. assert "%i" % -123 == "-123"
  15. assert "value: %i" % 999 == "value: 999"
  16. # Test %f - float formatting
  17. assert "%f" % 3.14 == "3.140000"
  18. assert "%f" % -2.5 == "-2.500000"
  19. assert "%f" % 0.0 == "0.000000"
  20. assert "%f" % 42 == "42.000000" # int to float
  21. # Test %r - repr formatting
  22. assert "%r" % "hello" == "'hello'"
  23. assert "%r" % 123 == "123"
  24. assert "%r" % [1, 2, 3] == "[1, 2, 3]"
  25. # Test %% - literal percent
  26. assert "%%" % () == "%"
  27. assert "100%%" % () == "100%"
  28. assert "%%s" % () == "%s"
  29. assert "%d%%" % 50 == "50%"
  30. # Test combined format specifiers
  31. assert "%s is %d years old" % ("Bob", 25) == "Bob is 25 years old"
  32. assert "%s: %f" % ("pi", 3.14159) == "pi: 3.141590"
  33. assert "%d + %d = %d" % (1, 2, 3) == "1 + 2 = 3"
  34. assert "Hello %s! You have %d messages." % ("User", 5) == "Hello User! You have 5 messages."
  35. # Test single value (not tuple)
  36. assert "value: %s" % "test" == "value: test"
  37. assert "number: %d" % 42 == "number: 42"
  38. # Test empty string
  39. assert "" % () == ""
  40. # Test no format specifiers
  41. assert "hello world" % () == "hello world"