/src/wrappers/glib/examples/tree_example.e

http://github.com/tybor/Liberty · Specman e · 68 lines · 56 code · 9 blank · 3 comment · 2 complexity · 0c21d7f9fc3d9e16cb0e00c9078b8f50 MD5 · raw file

  1. indexing
  2. copyright: "(C) 2007 Paolo Redaelli "
  3. license: "LGPL v2 or later"
  4. date: "$Date:$"
  5. revision: "$REvision:$"
  6. class TREE_EXAMPLE
  7. creation make
  8. feature
  9. tree: G_TREE[G_DATE, G_STRING]
  10. first: G_STRING
  11. feature
  12. make is
  13. do
  14. setup
  15. test
  16. end
  17. setup is
  18. do
  19. create tree.make(agent compare)
  20. tree.insert_value (create {G_DATE}.make_dmy(1,1,1970),
  21. create {G_STRING}.from_string("Epoch"))
  22. tree.insert_value (create {G_DATE}.make_dmy(10,3,1984),
  23. create {G_STRING}.from_string("Gnu birthday"))
  24. tree.insert_value (create {G_DATE}.make_dmy(17,9,1991),
  25. create {G_STRING}.from_string("Linux birthday"))
  26. end
  27. test is
  28. local
  29. a_date: G_DATE;
  30. test_dates: FAST_ARRAY[TUPLE[INTEGER_8,INTEGER_8,INTEGER_16]]; i: INTEGER
  31. event: G_STRING
  32. do
  33. test_dates:={FAST_ARRAY[TUPLE[INTEGER_8,INTEGER_8,INTEGER_16]]
  34. << [17,9,1991],
  35. [10,7,1976],
  36. [10,3,1984] >> }
  37. from i:=test_dates.lower
  38. until i>test_dates.upper
  39. loop
  40. create a_date.from_tuple(test_dates.item(i))
  41. event:=tree.lookup(a_date)
  42. if event/=Void
  43. then print (a_date.to_string+": "+event.to_string+"%N")
  44. else print ("No known events on "+a_date.to_string+"%N")
  45. end
  46. i:=i+1
  47. end
  48. -- from i:=list.get_new_iterator; i.start until i.is_off loop
  49. -- print (i.item.to_string) print (", ") i.next end print
  50. -- ("%N")
  51. end
  52. compare(a_date,another_date: COMPARABLE_C_STRUCT): INTEGER is
  53. require
  54. date_not_void: a_date/=Void
  55. another_not_void: another_date/=Void
  56. do
  57. Result:=a_date.compare(another_date)
  58. end
  59. end