/test/lib/string/test_string1.e

http://github.com/tybor/Liberty · Specman e · 177 lines · 146 code · 5 blank · 26 comment · 0 complexity · c547041cc34b3bbef4447ff3ad312cd2 MD5 · raw file

  1. -- This file is part of SmartEiffel The GNU Eiffel Compiler Tools and Libraries.
  2. -- See the Copyright notice at the end of this file.
  3. --
  4. class TEST_STRING1
  5. insert
  6. EIFFELTEST_TOOLS
  7. create {}
  8. make
  9. feature {ANY}
  10. make
  11. local
  12. s, s2: STRING; i: INTEGER; words: ARRAY[STRING]
  13. do
  14. create s.make_filled(' ', 0)
  15. assert(s.count = 0)
  16. s.make_filled(' ', 1)
  17. assert(s.count = 1)
  18. assert(s.item(1) = ' ')
  19. s.put('a', 1)
  20. assert(s.count = 1)
  21. assert(s.item(1) = 'a')
  22. create s.make_filled(' ', 4)
  23. assert(s.count = 4)
  24. from
  25. i := 1
  26. until
  27. i > s.count
  28. loop
  29. assert(s.item(i) = ' ')
  30. i := i + 1
  31. end
  32. assert(("").is_equal(""))
  33. assert(not (" ").is_equal(""))
  34. create s.make_filled(' ', 3)
  35. s.put('a', 2)
  36. assert((" a ").is_equal(s))
  37. assert(s.is_equal(" a "))
  38. s := ""
  39. assert(s.count = 0)
  40. s.extend('x')
  41. assert(s.count = 1)
  42. assert(s.item(1) = 'x')
  43. s := "1"
  44. assert(s.count = 1)
  45. assert(s.item(1) = '1')
  46. s.extend('x')
  47. assert(s.count = 2)
  48. assert(s.item(1) = '1')
  49. assert(s.item(2) = 'x')
  50. assert(("1x").is_equal(s))
  51. create s.make_filled(' ', 3)
  52. s.put('h', 2)
  53. assert((" h ").is_equal(s))
  54. s.put(' ', 2)
  55. assert(not (" h ").is_equal(s))
  56. assert(s.is_equal(" "))
  57. s.make_filled(' ', 3)
  58. assert(s.is_equal(" "))
  59. create s.copy("ab")
  60. assert(s.count = 2)
  61. assert(("ab").is_equal(s))
  62. s.copy("cdef")
  63. assert(("cdef").is_equal(s))
  64. s.copy("a")
  65. assert(("a").is_equal(s))
  66. s := ""
  67. assert(s.count = 0)
  68. create s.copy(s)
  69. assert(s.count = 0)
  70. s.extend('a')
  71. assert(s.count = 1)
  72. assert(s.item(1) = 'a')
  73. s2 := "a"
  74. s := s2.twin
  75. assert(s.count = 1)
  76. assert(s2.count = 1)
  77. assert(s.item(1) = 'a')
  78. s2.put('b', 1)
  79. assert(s2.item(1) = 'b')
  80. assert(s.item(1) = 'a')
  81. s := "abc"
  82. s2 := s.twin
  83. assert(s.is_equal(s2))
  84. s.put('x', 2)
  85. assert(not s.is_equal(s2))
  86. create s.make_filled(' ', 0)
  87. assert(("").is_equal(s))
  88. create s.make_filled(' ', 2)
  89. assert((" ").is_equal(s))
  90. s := "aaa"
  91. s.make_filled(' ', 2)
  92. assert((" ").is_equal(s))
  93. s := ""
  94. assert(("").twin.is_equal(s))
  95. create s.make_filled(' ', 2)
  96. assert((" ").is_equal(s))
  97. s := "aaa"
  98. s.make_filled(' ', 2)
  99. assert((" ").is_equal(s))
  100. assert(("abc").is_equal("abc"))
  101. create s.copy("kiki")
  102. assert(s.is_equal("kiki"))
  103. s.copy(s)
  104. assert(s.is_equal("kiki"))
  105. s.copy("3")
  106. assert(s.is_equal("3"))
  107. create s.copy("kiki")
  108. s.clear_count
  109. assert(s.is_equal(""))
  110. s := "123456789"
  111. s.shrink(1, 7)
  112. assert(("1234567").is_equal(s))
  113. s.shrink(2, 7)
  114. assert(("234567").is_equal(s))
  115. assert((" +234 ").to_integer = 234)
  116. assert((" -67").to_integer = -67)
  117. assert((" +234 ").to_integer_64 = 234)
  118. assert((" -67").to_integer_64 = -67)
  119. assert(("+234.0").to_real = 234.0)
  120. assert(("+1234").to_real = 1234.0)
  121. assert((" +234.22").to_real <= 234.221)
  122. assert((" +234.22").to_real >= 234.219)
  123. assert((" -67.0 %N").to_real = -67)
  124. assert((".5").to_real = 0.5)
  125. assert(("0.5").to_real = 0.5)
  126. -- *** std_output.put_string("Min%N")
  127. -- THERE IS HERE A STRANGE BUG ONLY IN gcc -O3 ????
  128. -- D.Colnet 9 feb 2003
  129. -- ***
  130. -- *** std_output.put_string("Max%N")
  131. assert(str1.is_equal(str2))
  132. assert(str1 /= str2)
  133. create s.make(10)
  134. assert(s.count = 0)
  135. assert(s.capacity >= 10)
  136. words := ("un machin").split
  137. assert(words.count = 2)
  138. assert(words.is_equal({ARRAY[STRING] 1, << "un", "machin" >> }))
  139. words := (" un machin ").split
  140. assert(words.is_equal({ARRAY[STRING] 1, << "un", "machin" >> }))
  141. assert(" un machin ".split.is_equal({ARRAY[STRING] 1, << "un", "machin" >> }))
  142. assert((" ").split = Void)
  143. assert(("%/32/").first = ' ')
  144. assert(("%/122/").first = 'z')
  145. assert(("%/123/").first = '{')
  146. assert(("%/92/").first = '%/92/')
  147. assert(("%/92/").first = '\')
  148. assert(("%/92/").first = '%H')
  149. assert(("\").first = '%H')
  150. assert((" -67 ").to_real = -67)
  151. assert((" -67 ").to_real = -67)
  152. end
  153. str1,str2: STRING "Ouupps ..."
  154. end -- class TEST_STRING1
  155. --
  156. -- ------------------------------------------------------------------------------------------------------------------------------
  157. -- Copyright notice below. Please read.
  158. --
  159. -- SmartEiffel is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License,
  160. -- as published by the Free Software Foundation; either version 2, or (at your option) any later version.
  161. -- SmartEiffel is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty
  162. -- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have
  163. -- received a copy of the GNU General Public License along with SmartEiffel; see the file COPYING. If not, write to the Free
  164. -- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  165. --
  166. -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE
  167. -- Copyright(C) 2003-2006: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE
  168. --
  169. -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN
  170. --
  171. -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr
  172. -- ------------------------------------------------------------------------------------------------------------------------------