deque_ut.pyx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. from libcpp.deque cimport deque
  2. from util.generic.deque cimport TDeque
  3. import pytest
  4. import unittest
  5. class TestDeque(unittest.TestCase):
  6. def test_ctor1(self):
  7. cdef TDeque[int] tmp = TDeque[int]()
  8. self.assertEqual(tmp.size(), 0)
  9. def test_ctor2(self):
  10. cdef TDeque[int] tmp = TDeque[int](10)
  11. self.assertEqual(tmp.size(), 10)
  12. self.assertEqual(tmp[0], 0)
  13. def test_ctor3(self):
  14. cdef TDeque[int] tmp = TDeque[int](10, 42)
  15. self.assertEqual(tmp.size(), 10)
  16. self.assertEqual(tmp[0], 42)
  17. def test_ctor4(self):
  18. cdef TDeque[int] tmp = TDeque[int](10, 42)
  19. cdef TDeque[int] tmp2 = TDeque[int](tmp)
  20. self.assertEqual(tmp2.size(), 10)
  21. self.assertEqual(tmp2[0], 42)
  22. def test_operator_assign(self):
  23. cdef TDeque[int] tmp2
  24. tmp2.push_back(1)
  25. tmp2.push_back(2)
  26. cdef TDeque[int] tmp3
  27. tmp3.push_back(1)
  28. tmp3.push_back(3)
  29. self.assertEqual(tmp2[1], 2)
  30. self.assertEqual(tmp3[1], 3)
  31. tmp3 = tmp2
  32. self.assertEqual(tmp2[1], 2)
  33. self.assertEqual(tmp3[1], 2)
  34. def test_compare(self):
  35. cdef TDeque[int] tmp1
  36. tmp1.push_back(1)
  37. tmp1.push_back(2)
  38. cdef TDeque[int] tmp2
  39. tmp2.push_back(1)
  40. tmp2.push_back(2)
  41. cdef TDeque[int] tmp3
  42. tmp3.push_back(1)
  43. tmp3.push_back(3)
  44. self.assertTrue(tmp1 == tmp2)
  45. self.assertTrue(tmp1 != tmp3)
  46. self.assertTrue(tmp1 < tmp3)
  47. self.assertTrue(tmp1 <= tmp3)
  48. self.assertTrue(tmp3 > tmp1)
  49. self.assertTrue(tmp3 >= tmp1)