| Total Complexity | 7 |
| Total Lines | 22 |
| Duplicated Lines | 0 % |
| Changes | 2 | ||
| Bugs | 0 | Features | 1 |
| 1 | import numpy as np |
||
| 4 | class PositionUpdater: |
||
| 5 | def __init__(self, stage): |
||
| 6 | self.stage = stage |
||
| 7 | self.lower_bounds = np.asarray(self.stage.lower_bounds) |
||
| 8 | self.upper_bounds = np.asarray(self.stage.upper_bounds) |
||
| 9 | |||
| 10 | def set_initial_control_params(self): |
||
| 11 | random = np.random.rand(len(self.stage.control_params)) |
||
| 12 | delta = self.upper_bounds - self.lower_bounds |
||
| 13 | control_params = self.lower_bounds + random * delta |
||
| 14 | self.stage.control_params = control_params.tolist() |
||
| 15 | |||
| 16 | def update_position(self, velocity): |
||
| 17 | self.stage.control_params = self.stage.control_params + velocity |
||
| 18 | self._fix_coordinates() |
||
| 19 | |||
| 20 | def _fix_coordinates(self): |
||
| 21 | for i in range(len(self.stage.control_params)): |
||
| 22 | if self.stage.control_params[i] > self.stage.upper_bounds[i]: |
||
| 23 | self.stage.control_params[i] = self.stage.upper_bounds[i] |
||
| 24 | elif self.stage.control_params[i] < self.stage.lower_bounds[i]: |
||
| 25 | self.stage.control_params[i] = self.stage.lower_bounds[i] |
||
| 26 |
The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:
If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.