test_formats.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. """
  2. Tests for CategoricalIndex.__repr__ and related methods.
  3. """
  4. import pandas._config.config as cf
  5. from pandas import CategoricalIndex
  6. class TestCategoricalIndexRepr:
  7. def test_format_different_scalar_lengths(self):
  8. # GH#35439
  9. idx = CategoricalIndex(["aaaaaaaaa", "b"])
  10. expected = ["aaaaaaaaa", "b"]
  11. assert idx.format() == expected
  12. def test_string_categorical_index_repr(self):
  13. # short
  14. idx = CategoricalIndex(["a", "bb", "ccc"])
  15. expected = """CategoricalIndex(['a', 'bb', 'ccc'], categories=['a', 'bb', 'ccc'], ordered=False, dtype='category')""" # noqa:E501
  16. assert repr(idx) == expected
  17. # multiple lines
  18. idx = CategoricalIndex(["a", "bb", "ccc"] * 10)
  19. expected = """CategoricalIndex(['a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a',
  20. 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb',
  21. 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc'],
  22. categories=['a', 'bb', 'ccc'], ordered=False, dtype='category')""" # noqa:E501
  23. assert repr(idx) == expected
  24. # truncated
  25. idx = CategoricalIndex(["a", "bb", "ccc"] * 100)
  26. expected = """CategoricalIndex(['a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a',
  27. ...
  28. 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc', 'a', 'bb', 'ccc'],
  29. categories=['a', 'bb', 'ccc'], ordered=False, dtype='category', length=300)""" # noqa:E501
  30. assert repr(idx) == expected
  31. # larger categories
  32. idx = CategoricalIndex(list("abcdefghijklmmo"))
  33. expected = """CategoricalIndex(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
  34. 'm', 'm', 'o'],
  35. categories=['a', 'b', 'c', 'd', ..., 'k', 'l', 'm', 'o'], ordered=False, dtype='category')""" # noqa:E501
  36. assert repr(idx) == expected
  37. # short
  38. idx = CategoricalIndex(["あ", "いい", "ううう"])
  39. expected = """CategoricalIndex(['あ', 'いい', 'ううう'], categories=['あ', 'いい', 'ううう'], ordered=False, dtype='category')""" # noqa:E501
  40. assert repr(idx) == expected
  41. # multiple lines
  42. idx = CategoricalIndex(["あ", "いい", "ううう"] * 10)
  43. expected = """CategoricalIndex(['あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ',
  44. 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい',
  45. 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう'],
  46. categories=['あ', 'いい', 'ううう'], ordered=False, dtype='category')""" # noqa:E501
  47. assert repr(idx) == expected
  48. # truncated
  49. idx = CategoricalIndex(["あ", "いい", "ううう"] * 100)
  50. expected = """CategoricalIndex(['あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ',
  51. ...
  52. 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう'],
  53. categories=['あ', 'いい', 'ううう'], ordered=False, dtype='category', length=300)""" # noqa:E501
  54. assert repr(idx) == expected
  55. # larger categories
  56. idx = CategoricalIndex(list("あいうえおかきくけこさしすせそ"))
  57. expected = """CategoricalIndex(['あ', 'い', 'う', 'え', 'お', 'か', 'き', 'く', 'け', 'こ', 'さ', 'し',
  58. 'す', 'せ', 'そ'],
  59. categories=['あ', 'い', 'う', 'え', ..., 'し', 'す', 'せ', 'そ'], ordered=False, dtype='category')""" # noqa:E501
  60. assert repr(idx) == expected
  61. # Enable Unicode option -----------------------------------------
  62. with cf.option_context("display.unicode.east_asian_width", True):
  63. # short
  64. idx = CategoricalIndex(["あ", "いい", "ううう"])
  65. expected = """CategoricalIndex(['あ', 'いい', 'ううう'], categories=['あ', 'いい', 'ううう'], ordered=False, dtype='category')""" # noqa:E501
  66. assert repr(idx) == expected
  67. # multiple lines
  68. idx = CategoricalIndex(["あ", "いい", "ううう"] * 10)
  69. expected = """CategoricalIndex(['あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい',
  70. 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう',
  71. 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい',
  72. 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう'],
  73. categories=['あ', 'いい', 'ううう'], ordered=False, dtype='category')""" # noqa:E501
  74. assert repr(idx) == expected
  75. # truncated
  76. idx = CategoricalIndex(["あ", "いい", "ううう"] * 100)
  77. expected = """CategoricalIndex(['あ', 'いい', 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい',
  78. 'ううう', 'あ',
  79. ...
  80. 'ううう', 'あ', 'いい', 'ううう', 'あ', 'いい', 'ううう',
  81. 'あ', 'いい', 'ううう'],
  82. categories=['あ', 'いい', 'ううう'], ordered=False, dtype='category', length=300)""" # noqa:E501
  83. assert repr(idx) == expected
  84. # larger categories
  85. idx = CategoricalIndex(list("あいうえおかきくけこさしすせそ"))
  86. expected = """CategoricalIndex(['あ', 'い', 'う', 'え', 'お', 'か', 'き', 'く', 'け', 'こ',
  87. 'さ', 'し', 'す', 'せ', 'そ'],
  88. categories=['あ', 'い', 'う', 'え', ..., 'し', 'す', 'せ', 'そ'], ordered=False, dtype='category')""" # noqa:E501
  89. assert repr(idx) == expected