added test theory and finished function

This commit is contained in:
Linus E 2022-05-16 17:37:18 +02:00
parent 9ccd712827
commit 6933286757

View File

@ -6,7 +6,6 @@ __date__ = "02.05.2022"
__version__ = "0.0.1" __version__ = "0.0.1"
__license__ = "None" __license__ = "None"
import pandas as pd
import plotly.express as px import plotly.express as px
@ -20,10 +19,19 @@ def eval_score(price, guess):
Returns: Returns:
float: score of the user float: score of the user
Raises:
ValueError: if price or guess is negative
Test:
test eval_score by plotting the score graph and comparing it to the expected result (should be linear or logarithmic/exponential)
test with edge cases (e.g. price = 1, guess = 0) -> if guess is half or times 2 actual price -> score should be 0, score has to be always between 0 and 1000
""" """
price = float(price) price = float(price)
guess = float(guess) guess = float(guess)
if price <= 0 or guess < 0:
raise ValueError("Price has to be positive, guess has to be positive or zero") # raise error if price or guess is negative
diff = abs(price - guess) # difference between price and guess in absolute value (e.g.: |-5| = 5) diff = abs(price - guess) # difference between price and guess in absolute value (e.g.: |-5| = 5)
rel = diff / price rel = diff / price
@ -46,7 +54,17 @@ def get_relative_deviation(price, guess):
Returns: Returns:
float: relative deviation of the guess (take times hundred for percentage) float: relative deviation of the guess (take times hundred for percentage)
Raises:
ValueError: if price or guess is negative
Test:
test get_relative_deviation with edge cases (e.g. price = 1, guess = 0) -> if guess is half or times 2 actual price -> return value has to be a float >= 0
test get_relative_deviation with negative price -> should throw ValueError
""" """
if price <= 0 or guess < 0:
raise ValueError("Price has to be positive, guess has to be positive or zero") # raise error if price or guess is negative
price = float(price) price = float(price)
guess = float(guess) guess = float(guess)