| import pytest |
| from sparsevlm.scheduler import SparsityScheduler, make_scheduler |
|
|
|
|
| def test_bucket_bounds(): |
| s = SparsityScheduler(256, 10, 32) |
| assert s.buckets[0] == 32 |
| assert s.buckets[-1] == 256 |
|
|
|
|
| def test_snap_always_gte(): |
| s = SparsityScheduler(256, 10, 32) |
| for n in range(32, 257, 7): |
| assert s.snap_to_bucket(n) >= n |
|
|
|
|
| def test_snap_in_buckets(): |
| s = SparsityScheduler(256, 10, 32) |
| for n in range(32, 257, 5): |
| assert s.snap_to_bucket(n) in s.buckets |
|
|
|
|
| def test_make_scheduler(): |
| s = make_scheduler(256) |
| assert s.n_vis_max == 256 |
| assert len(s.buckets) > 0 |
|
|
|
|
| def test_bucket_idx(): |
| s = SparsityScheduler(256, 10, 32) |
| for n in [32, 64, 128, 256]: |
| idx = s.get_bucket_idx(n) |
| assert 0 <= idx < len(s.buckets) |
|
|
|
|
| def test_summary(): |
| s = make_scheduler(256) |
| assert isinstance(s.summary(), str) |
| assert len(s.summary()) > 0 |
|
|