"""
Unit tests for Centralized FYERS Rate Limiter
"""
import pytest
import time
from python.fyers.rate_limiter import FyersRateLimiter

def test_rate_limiter_singleton():
    r1 = FyersRateLimiter()
    r2 = FyersRateLimiter()
    assert r1 is r2

def test_rate_limiter_acquire_increments_count():
    r = FyersRateLimiter()
    initial_used = r.daily_count
    r.acquire()
    assert r.daily_count == initial_used + 1

def test_rate_limiter_stats():
    r = FyersRateLimiter()
    stats = r.get_stats()
    assert "current_req_per_sec" in stats
    assert "current_req_per_min" in stats
    assert "daily_quota" in stats
    assert stats["daily_quota"] == 5000
    assert stats["remaining_daily_requests"] >= 0
