import unittest
from decimal import Decimal
from apps.payroll.calculations import daily_rate, hourly_rate, overtime_amount, net_payable

class PayrollMathTests(unittest.TestCase):
    def test_daily_rate(self): self.assertEqual(daily_rate(30000, 30), Decimal("1000.00"))
    def test_hourly_rate(self): self.assertEqual(hourly_rate(20800, 208), Decimal("100.00"))
    def test_overtime_amount(self): self.assertEqual(overtime_amount(2.5, 100, 2), Decimal("500.00"))
    def test_net_payable(self):
        self.assertEqual(net_payable(gross_salary=50000, overtime=1000, bonus=5000, attendance_deduction=500, other_deductions=1000, loan_recovery=2000), Decimal("52500.00"))

if __name__ == "__main__": unittest.main()
