Untitled

 avatar
unknown
plain_text
9 months ago
1.4 kB
2
Indexable
from abc import ABC, abstractmethod

class ErrorCalculator(ABC):
    def __init__(self, true_value, observed_value):
        self._true_value = true_value
        self._observed_value = observed_value

    @abstractmethod
    def calculate_errors(self):
        pass

    def get_true_value(self):
        return self._true_value

    def get_observed_value(self):
        return self._observed_value

class SpecificErrorCalculator(ErrorCalculator):
    def calculate_errors(self):
        # Calculate Absolute Error
        absolute_error = abs(self._true_value - self._observed_value)

        # Calculate Relative Error
        if self._true_value != 0:
            relative_error = absolute_error / abs(self._true_value)
        else:
            relative_error = float('inf')  # or handle division by zero appropriately

        # Calculate Percentage Error
        percentage_error = relative_error * 100

        return absolute_error, relative_error, percentage_error

# Example usage
true_value = 45
observed_value = 50

calculator = SpecificErrorCalculator(true_value, observed_value)
absolute_error, relative_error, percentage_error = calculator.calculate_errors()

print(f"True Value: {calculator.get_true_value()}")
print(f"Observed Value: {calculator.get_observed_value()}")
print(f"Absolute Error: {absolute_error}")
print(f"Relative Error: {relative_error}")
print(f"Percentage Error: {percentage_error}%")
Editor is loading...
Leave a Comment