Download benchmarks/python/booking.py from SevdanurGenc/LLM-Automated-Test-Generation-Agent: direct link, hf CLI and curl.
- Browser
- Download file 1.88 kB
-
https://huggingface.co/SevdanurGenc/LLM-Automated-Test-Generation-Agent/resolve/main/benchmarks/python/booking.py
- Command line
-
hf download hf://SevdanurGenc/LLM-Automated-Test-Generation-Agent/benchmarks/python/booking.py
-
curl -L -o booking.py https://huggingface.co/SevdanurGenc/LLM-Automated-Test-Generation-Agent/resolve/main/benchmarks/python/booking.py
1.88 kB
| """Toplantı odası rezervasyonu: çakışma denetimi ve boş aralıklar (gün içi dakika cinsinden).""" | |
| class BookingError(Exception): | |
| pass | |
| class Room: | |
| def __init__(self, name, open_at=9 * 60, close_at=18 * 60): | |
| if open_at >= close_at: | |
| raise BookingError("açılış kapanıştan önce olmalı") | |
| self.name = name | |
| self.open_at = open_at | |
| self.close_at = close_at | |
| self.bookings = [] # (start, end, owner), başlangıca göre sıralı | |
| def is_free(self, start, end): | |
| """[start, end) aralığı boş mu? Uç uca eklenen toplantılar çakışmaz.""" | |
| return all(end <= s or start >= e for s, e, _ in self.bookings) | |
| def book(self, start, end, owner): | |
| if start >= end: | |
| raise BookingError("bitiş başlangıçtan sonra olmalı") | |
| if start < self.open_at or end > self.close_at: | |
| raise BookingError("çalışma saatleri dışında") | |
| if not self.is_free(start, end): | |
| raise BookingError("çakışan rezervasyon") | |
| self.bookings.append((start, end, owner)) | |
| self.bookings.sort() | |
| return len(self.bookings) | |
| def cancel(self, owner): | |
| """Sahibin tüm rezervasyonlarını siler; silinen sayısını döndürür.""" | |
| before = len(self.bookings) | |
| self.bookings = [b for b in self.bookings if b[2] != owner] | |
| return before - len(self.bookings) | |
| def free_slots(self, min_length=30): | |
| """Çalışma saatleri içindeki, en az min_length dakikalık boş aralıklar.""" | |
| slots, cursor = [], self.open_at | |
| for s, e, _ in self.bookings: | |
| if s - cursor >= min_length: | |
| slots.append((cursor, s)) | |
| cursor = max(cursor, e) | |
| if self.close_at - cursor >= min_length: | |
| slots.append((cursor, self.close_at)) | |
| return slots | |