/test/lib/string/test_fixed_string.e

http://github.com/tybor/Liberty · Specman e · 40 lines · 33 code · 7 blank · 0 comment · 0 complexity · a12b120e0b272840b1ff1a363906abbd MD5 · raw file

  1. class TEST_FIXED_STRING
  2. insert
  3. EIFFELTEST_TOOLS
  4. STRING_HANDLER
  5. create {}
  6. make
  7. feature {}
  8. make
  9. local
  10. fs: FIXED_STRING; s: STRING; p: POINTER
  11. do
  12. s := "foo"
  13. fs := s.intern
  14. assert(s.is_equal(fs))
  15. fs := "foobar".intern.substring(2, 4)
  16. assert(fs.is_shared)
  17. assert(fs.is_equal("oob"))
  18. assert(fs.out.is_equal("oob"))
  19. assert(fs.substring(1, 1).is_equal("o"))
  20. fs.unshare
  21. assert(not fs.is_shared)
  22. assert(fs.is_equal("oob"))
  23. assert(fs.out.is_equal("oob"))
  24. assert(fs.substring(1, 1).is_equal("o"))
  25. fs := "riri fifi loulou".intern.substring(6, 9)
  26. assert(fs.is_equal("fifi"))
  27. assert(fs.is_shared)
  28. p := fs.to_external
  29. assert(not fs.is_shared)
  30. create s.from_external(p) -- NOTE: don't do that in real code! you'll end up with a shared storage with a way to change a fixed string
  31. assert(s.is_equal("fifi"))
  32. end
  33. end -- class TEST_FIXED_STRING