from math import inf
from ms_serviceparam_optimizer.config.config import PerformanceIndex
from ms_serviceparam_optimizer.optimizer.performance_tunner import PerformanceTuner
def test_minimum_algorithm():
tuner = PerformanceTuner()
index = PerformanceIndex(generate_speed=None)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=0)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=None)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1e10)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1, time_per_output_token=None)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1, time_per_output_token=1e10)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1, time_per_output_token=1, success_rate=None)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1, time_per_output_token=1, success_rate=0)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1, time_per_output_token=1, success_rate=1e-10)
assert tuner.minimum_algorithm(index) == inf
index = PerformanceIndex(generate_speed=1, time_to_first_token=1, time_per_output_token=1, success_rate=1)
assert tuner.minimum_algorithm(index) != inf
index = PerformanceIndex(generate_speed=1000, time_to_first_token=0.49, time_per_output_token=0.049, success_rate=1)
index2 = PerformanceIndex(generate_speed=1000, time_to_first_token=0.29, time_per_output_token=0.014,
success_rate=1)
assert tuner.minimum_algorithm(index) > tuner.minimum_algorithm(index2)
index = PerformanceIndex(generate_speed=1000, time_to_first_token=0.89, time_per_output_token=0.049, success_rate=1)
index2 = PerformanceIndex(generate_speed=1000, time_to_first_token=0.59, time_per_output_token=0.014,
success_rate=1)
assert tuner.minimum_algorithm(index) > tuner.minimum_algorithm(index2)
index = PerformanceIndex(generate_speed=1000, time_to_first_token=0.89, time_per_output_token=0.099, success_rate=1)
index2 = PerformanceIndex(generate_speed=1000, time_to_first_token=0.59, time_per_output_token=0.054,
success_rate=1)
assert tuner.minimum_algorithm(index) > tuner.minimum_algorithm(index2)
index = PerformanceIndex(generate_speed=1000, time_to_first_token=0.49, time_per_output_token=0.049, success_rate=1)
index2 = PerformanceIndex(generate_speed=2000, time_to_first_token=0.49, time_per_output_token=0.049,
success_rate=1)
assert tuner.minimum_algorithm(index) > tuner.minimum_algorithm(index2)