cepxuozab

Parking

Feb 23rd, 2024 (edited)
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. void Incompleted() {
  2. Parking<TestClock> parking(10);
  3.  
  4. TestClock::SetNow(20);
  5. parking.Park({'B', 'B', 222, 'B', 99});
  6.  
  7. TestClock::SetNow(40);
  8. assert(parking.GetCurrentBill({'B', 'B', 222, 'B', 99}) == 200);
  9.  
  10. TestClock::SetNow(60);
  11. assert(parking.GetCurrentBill({'B', 'B', 222, 'B', 99}) == 400);
  12. }
  13.  
  14. void TestContainers() {
  15. Parking<TestClock> parking(10);
  16. auto tmp = parking.GetCompleteParks();
  17. std::cout<<tmp.size()<<'\n';
  18. for (auto const&[key, val]:tmp)
  19. {
  20. std::cout<<key<<' '<<chrono::duration_cast<chrono::seconds>(val)<<'\n';
  21. }
  22.  
  23. TestClock::SetNow(10);
  24. parking.Park({'A', 'A', 111, 'A', 99});
  25. tmp = parking.GetCompleteParks();
  26. std::cout<<tmp.size()<<'\n';
  27. for (auto const&[key, val]:tmp)
  28. {
  29. std::cout<<key<<' '<<chrono::duration_cast<chrono::seconds>(val)<<'\n';
  30. }
  31.  
  32. TestClock::SetNow(20);
  33. parking.Withdraw({'A', 'A', 111, 'A', 99});
  34. parking.Park({'B', 'B', 222, 'B', 99});
  35. tmp = parking.GetCompleteParks();
  36. std::cout<<tmp.size()<<'\n';
  37. for (auto const&[key, val]:tmp)
  38. {
  39. std::cout<<key<<' '<<chrono::duration_cast<chrono::seconds>(val)<<'\n';
  40. }
  41.  
  42. TestClock::SetNow(40);
  43. assert(parking.GetCurrentBill({'A', 'A', 111, 'A', 99}) == 100);
  44. assert(parking.GetCurrentBill({'B', 'B', 222, 'B', 99}) == 200);
  45. parking.Park({'A', 'A', 111, 'A', 99});
  46. tmp = parking.GetCompleteParks();
  47. std::cout<<tmp.size()<<'\n';
  48. for (auto const&[key, val]:tmp)
  49. {
  50. std::cout<<key<<' '<<chrono::duration_cast<chrono::seconds>(val)<<'\n';
  51. }
  52.  
  53. TestClock::SetNow(60);
  54. assert(parking.GetCurrentBill({'A', 'A', 111, 'A', 99}) == 300);
  55. assert(parking.GetCurrentBill({'B', 'B', 222, 'B', 99}) == 400);
  56. assert(parking.GetCurrentBill({'C', 'C', 333, 'C', 99}) == 0);
  57. tmp = parking.GetCompleteParks();
  58. std::cout<<tmp.size()<<'\n';
  59. for (auto const&[key, val]:tmp)
  60. {
  61. std::cout<<key<<' '<<chrono::duration_cast<chrono::seconds>(val)<<'\n';
  62. }
  63. }
  64.  
  65. 0
  66. 0
  67. 1
  68. AA111A99 10s
  69. 1
  70. AA111A99 10s
  71. 1
  72. AA111A99 10s
  73.  
Advertisement
Add Comment
Please, Sign In to add comment