def test_load_pes_only_file(self): """ """ path = paths.project('test_resources', 'pes_only_test_data.csv') positions = trackway.load_positions_file(path) self.assertEqual(len(positions.left_manus), 4) self.assertEqual(len(positions.right_manus), 5) self.assertEqual(len(positions.left_pes), 4) self.assertEqual(len(positions.right_pes), 5)
def test_load_positions_file(self): """ """ path = paths.project('test_resources', 'test_data.csv') positions = trackway.load_positions_file(path) self.assertEqual(len(positions.left_manus), 18) self.assertEqual(len(positions.right_manus), 20) self.assertEqual(len(positions.left_pes), 21) self.assertEqual(len(positions.right_pes), 21) result = positions.left_pes[0].echo() self.assertIsNotNone(result)
def load_trackway_positions( settings: dict, existing: limb.Property = None, save_as: str = None ) -> limb.Property: """ Loads the trackway positions for the trial from the information provided in the settings object, unless an existing trackway positions object has been specified :param settings: Configuration for the simulation trial :param existing: Optionally the already loaded trackway positions, which will be cloned and returned if present :param save_as: An optional path where the loaded trackway positions shold be saved """ if existing: # Ignore if already specified return existing.clone() data = settings.get('data') if isinstance(data, str): # Load from a specified file if not data.startswith('/'): data = os.path.join(settings['path'], data) if not os.path.exists(data): system.log( """ [ERROR]: No CSV source data exists at the path: {} """.format(data) ) raise FileNotFoundError('No CSV source file found') return trackway.load_positions_file(data) # Generate from configuration settings track_offsets = limb.Property().assign(*data['offsets']) out = generate.trackway_positions( cycle_count=data['count'], step_size=data['step_size'], track_offsets=track_offsets, lateral_displacement=data['lateral_displacement'], positional_uncertainty=data.get('uncertainty') ) if not save_as and data.get('save'): save_as = data.get('save') if save_as: trackway.save_positions_file( trackway_positions=out, path=os.path.join(settings['directory'], save_as) ) return out