Rater Built-ins¶
Rater Built-ins implement Rater functionality in custom Stepdefs. They use a CSV file that holds tariff configurations based on call durations or events. Unlike the Rater, the Rater Built-ins do not require an extra configuration.
Create Rates ¶
This function creates a file containing the rates. This function creates a file containing the rates. It may either use a CSV file object created with the File Built-in, or may specify a path to where the CSV is stored.
Create Rates with Object from File Built-ins¶
Returns the file object created with File Built-ins.
Syntax
1 | <subscriptionRate List> := createRates(<ratesFile Object>) |
Returns
The list of tariffs from the CSV file.
Parameter
- ratesFile - The file object created with File Built-ins
Example
1 | newRateFile := createRates(myrater) |
Create Rates Using Relative Path¶
Specifies a path to where the CSV is stored and returns the CSV file.
Syntax
1 | <subscriptionRate List> := createRates(<ratesFilePath String>) |
Returns
The list of tariffs from the CSV file.
Parameter
- ratesFilePath - The relative path to the Rater file
Example
1 | newRateWithPath := createRates("../TestProject01/newrater.csv") |
Calculate the Tariff Cost ¶
Returns a tariff's cost based on a specified rounding mode.
Syntax
1 2 | <tariffCost Number> := calculateTariffCosts(<tariffs String>, <timeRoundingMode String>) |
Returns
The calculated costs.
Parameters
-
tariffs - The Rater object created with the
createRates
function -
timeRoundingMode - Rounds the call's duration
- May be one of:
- UP (Default) - Rounding mode to round away from zero
- DOWN - Rounding mode to towards zero
- HALF_DOWN - Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down
- HALF_UP - Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up
- CEILING - Rounding mode to round towards positive infinity
- FLOOR - Rounding mode to round towards negative infinity
- May be one of:
Example
1 | callCost := calculateTariffCosts(newRateFile, "HALF_UP") |
Convert the Charge ¶
Converts a value from one unit to another unit.
Syntax
1 2 | <converted Number> := <number Number>, <currencyUnitFrom String>, <currencyUnitTo String>, <priceRoundingModeName String> |
Returns
The charge's value after conversion.
Parameters
-
number - The value to be converted
-
currencyUnitFrom - The monetary unit (such as, Euro, Dollar) to convert from, as defined in the CSV file
-
currencyUnitTo - The monetary unit to convert to, as defined in the CSV file
Example
1 | roundedCost := 20 as myCall from Euro to Cent |
Get Tariff ¶
Returns the specified tariff object. The tariff can be used for additional calculations.
Syntax
1 | <subscriptionRate Tariff> := getTariff(<tariff String>) |
Returns
The tariff object.
Parameter
- tariff - A tariff defined in the CSV file
Example
1 2 | mysubscription := getTariff("economy") assert mysubscription.calc(30) == 34 |