Download benchmarks/reference/py-booking.py from SevdanurGenc/LLM-Automated-Test-Generation-Agent: direct link, hf CLI and curl.
- Browser
- Download file 2.03 kB
-
https://huggingface.co/SevdanurGenc/LLM-Automated-Test-Generation-Agent/resolve/main/benchmarks/reference/py-booking.py
- Command line
-
hf download hf://SevdanurGenc/LLM-Automated-Test-Generation-Agent/benchmarks/reference/py-booking.py
-
curl -L -o py-booking.py https://huggingface.co/SevdanurGenc/LLM-Automated-Test-Generation-Agent/resolve/main/benchmarks/reference/py-booking.py
2.03 kB
| import pytest | |
| from solution import BookingError, Room | |
| def room(): | |
| return Room("Mavi") | |
| def test_defaults_and_invalid_hours(): | |
| r = Room("Kırmızı") | |
| assert (r.open_at, r.close_at, r.bookings) == (540, 1080, []) | |
| with pytest.raises(BookingError): | |
| Room("X", open_at=600, close_at=600) | |
| def test_book_returns_count_and_keeps_sorted(room): | |
| assert room.book(720, 780, "b") == 1 | |
| assert room.book(600, 660, "a") == 2 | |
| assert [b[2] for b in room.bookings] == ["a", "b"] | |
| def test_adjacent_bookings_do_not_conflict(room): | |
| room.book(600, 660, "a") | |
| room.book(660, 720, "b") | |
| room.book(540, 600, "c") | |
| assert len(room.bookings) == 3 | |
| def test_overlap_rejected(room): | |
| room.book(600, 660, "a") | |
| for s, e in [(630, 690), (570, 610), (600, 660), (610, 620)]: | |
| with pytest.raises(BookingError): | |
| room.book(s, e, "x") | |
| def test_invalid_interval_and_hours(room): | |
| with pytest.raises(BookingError): | |
| room.book(700, 700, "x") | |
| with pytest.raises(BookingError): | |
| room.book(500, 560, "x") | |
| with pytest.raises(BookingError): | |
| room.book(1050, 1090, "x") | |
| def test_is_free(room): | |
| room.book(600, 660, "a") | |
| assert room.is_free(660, 700) and room.is_free(540, 600) | |
| assert not room.is_free(650, 700) | |
| def test_cancel_removes_all_of_owner(room): | |
| room.book(600, 660, "a") | |
| room.book(700, 760, "a") | |
| room.book(800, 860, "b") | |
| assert room.cancel("a") == 2 | |
| assert room.cancel("zz") == 0 | |
| assert [b[2] for b in room.bookings] == ["b"] | |
| def test_free_slots_with_unordered_bookings(room): | |
| room.book(900, 960, "b") | |
| room.book(600, 660, "a") | |
| assert room.free_slots() == [(540, 600), (660, 900), (960, 1080)] | |
| def test_free_slots_min_length_inclusive(room): | |
| room.book(570, 1050, "a") | |
| assert room.free_slots(min_length=30) == [(540, 570), (1050, 1080)] | |
| assert room.free_slots(min_length=31) == [] | |
| def test_free_slots_empty_room(room): | |
| assert room.free_slots() == [(540, 1080)] | |