|
| 1 | +import pytest |
| 2 | +from llm.utils import simplify_usage_dict |
| 3 | + |
| 4 | + |
| 5 | +@pytest.mark.parametrize( |
| 6 | + "input_data,expected_output", |
| 7 | + [ |
| 8 | + ( |
| 9 | + { |
| 10 | + "prompt_tokens_details": {"cached_tokens": 0, "audio_tokens": 0}, |
| 11 | + "completion_tokens_details": { |
| 12 | + "reasoning_tokens": 0, |
| 13 | + "audio_tokens": 1, |
| 14 | + "accepted_prediction_tokens": 0, |
| 15 | + "rejected_prediction_tokens": 0, |
| 16 | + }, |
| 17 | + }, |
| 18 | + {"completion_tokens_details": {"audio_tokens": 1}}, |
| 19 | + ), |
| 20 | + ( |
| 21 | + { |
| 22 | + "details": {"tokens": 5, "audio_tokens": 2}, |
| 23 | + "more_details": {"accepted_tokens": 3}, |
| 24 | + }, |
| 25 | + { |
| 26 | + "details": {"tokens": 5, "audio_tokens": 2}, |
| 27 | + "more_details": {"accepted_tokens": 3}, |
| 28 | + }, |
| 29 | + ), |
| 30 | + ({"details": {"tokens": 0, "audio_tokens": 0}, "more_details": {}}, {}), |
| 31 | + ({"level1": {"level2": {"value": 0, "another_value": {}}}}, {}), |
| 32 | + ( |
| 33 | + { |
| 34 | + "level1": {"level2": {"value": 0, "another_value": 1}}, |
| 35 | + "level3": {"empty_dict": {}, "valid_token": 10}, |
| 36 | + }, |
| 37 | + {"level1": {"level2": {"another_value": 1}}, "level3": {"valid_token": 10}}, |
| 38 | + ), |
| 39 | + ], |
| 40 | +) |
| 41 | +def test_simplify_usage_dict(input_data, expected_output): |
| 42 | + assert simplify_usage_dict(input_data) == expected_output |
0 commit comments