Coverage for source/environment/points_reward_validator.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-07-30 20:59 +0000

1# environment/points_reward_validator.py 

2 

3# global imports 

4 

5# local imports 

6from source.environment import Order, RewardValidatorBase 

7 

8class PointsRewardValidator(RewardValidatorBase): 

9 """ 

10 Awards reward for successful or failure order basing on predefined constants. 

11 """ 

12 

13 def __init__(self, rewarded_points: tuple[int, int] = (1, -1)) -> None: 

14 """ 

15 Class constructor. 

16 

17 Parameters: 

18 rewarded_points (tuple[int, int]): Number of points to be awarded for 

19 successful and failure trade respectively. 

20 """ 

21 

22 self.__rewarded_points: tuple[int, int] = rewarded_points 

23 

24 def validate_orders(self, orders: list[Order]) -> float: 

25 """ 

26 Calculates number of points to be rewarded for list of closed trades. 

27 

28 Parameters: 

29 orders (list[Order]): Orders to be validated. 

30 

31 Returns: 

32 (float): Calcualted reward. 

33 """ 

34 

35 reward = 0 

36 for order in orders: 

37 if order.current_value > order.initial_value: 

38 reward = reward + self.__rewarded_points[0] 

39 else: 

40 reward = reward + self.__rewarded_points[1] 

41 return reward