API: deprecated COP APIs
[csit.git] / resources / libraries / python / MLRsearch / AbstractSearchAlgorithm.py
index 538322a..f2bf04e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 from abc import ABCMeta, abstractmethod
 
 
 from abc import ABCMeta, abstractmethod
 
 
-class AbstractSearchAlgorithm(object):
+class AbstractSearchAlgorithm(metaclass=ABCMeta):
     """Abstract class defining common API for search algorithms."""
 
     """Abstract class defining common API for search algorithms."""
 
-    __metaclass__ = ABCMeta
-
     def __init__(self, measurer):
         """Store the rate provider.
 
         :param measurer: Object able to perform trial or composite measurements.
     def __init__(self, measurer):
         """Store the rate provider.
 
         :param measurer: Object able to perform trial or composite measurements.
-        :type measurer: AbstractMeasurer
+        :type measurer: AbstractMeasurer.AbstractMeasurer
         """
         # TODO: Type check for AbstractMeasurer?
         self.measurer = measurer
 
     @abstractmethod
     def narrow_down_ndr_and_pdr(
         """
         # TODO: Type check for AbstractMeasurer?
         self.measurer = measurer
 
     @abstractmethod
     def narrow_down_ndr_and_pdr(
-            self, fail_rate, line_rate, packet_loss_ratio):
+            self, min_rate, max_rate, packet_loss_ratio):
         """Perform measurements to narrow down intervals, return them.
 
         This will be renamed when custom loss ratio lists are supported.
 
         """Perform measurements to narrow down intervals, return them.
 
         This will be renamed when custom loss ratio lists are supported.
 
-        :param fail_rate: Minimal target transmit rate [pps].
-        :param line_rate: Maximal target transmit rate [pps].
+        :param min_rate: Minimal target transmit rate [tps].
+            Usually, tests are set to fail if search reaches this or below.
+        :param max_rate: Maximal target transmit rate [tps].
+            Usually computed from line rate and various other limits,
+            to prevent failures or duration stretching in Traffic Generator.
         :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
         :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
-        :type fail_rate: float
-        :type line_rate: float
+        :type min_rate: float
+        :type max_rate: float
         :type packet_loss_ratio: float
         :returns: Structure containing narrowed down intervals
             and their measurements.
         :type packet_loss_ratio: float
         :returns: Structure containing narrowed down intervals
             and their measurements.
-        :rtype: NdrPdrResult
+        :rtype: NdrPdrResult.NdrPdrResult
         """
         # TODO: Do we agree on arguments related to precision or trial duration?
         """
         # TODO: Do we agree on arguments related to precision or trial duration?
-        pass