import os import sys import unittest sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import bl_decimate as bd class TestDecimateRatio(unittest.TestCase): def test_normal_reduction(self): self.assertAlmostEqual(bd.decimate_ratio(5000, 1500000), 5000 / 1500000.0) def test_current_below_target_returns_one(self): self.assertEqual(bd.decimate_ratio(5000, 3000), 1.0) def test_current_equal_target_returns_one(self): self.assertEqual(bd.decimate_ratio(5000, 5000), 1.0) def test_zero_current_returns_one(self): self.assertEqual(bd.decimate_ratio(5000, 0), 1.0) class TestWithinTolerance(unittest.TestCase): def test_exact_hit(self): self.assertTrue(bd.within_tolerance(5000, 5000)) def test_within_3_percent(self): self.assertTrue(bd.within_tolerance(5000, 5150)) # +3% self.assertTrue(bd.within_tolerance(5000, 4850)) # -3% def test_outside_3_percent(self): self.assertFalse(bd.within_tolerance(5000, 5200)) self.assertFalse(bd.within_tolerance(5000, 4700)) def test_zero_target_is_false(self): self.assertFalse(bd.within_tolerance(0, 0)) if __name__ == "__main__": unittest.main()