You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					26 lines
				
				976 B
			
		
		
			
		
	
	
					26 lines
				
				976 B
			| 
								 
											5 months ago
										 
									 | 
							
								from cereal import car
							 | 
						||
| 
								 | 
							
								from openpilot.selfdrive.locationd.torqued import TorqueEstimator
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def test_cal_percent():
							 | 
						||
| 
								 | 
							
								  est = TorqueEstimator(car.CarParams())
							 | 
						||
| 
								 | 
							
								  msg = est.get_msg()
							 | 
						||
| 
								 | 
							
								  assert msg.liveTorqueParameters.calPerc == 0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  for (low, high), min_pts in zip(est.filtered_points.buckets.keys(),
							 | 
						||
| 
								 | 
							
								                                  est.filtered_points.buckets_min_points.values(), strict=True):
							 | 
						||
| 
								 | 
							
								    for _ in range(int(min_pts)):
							 | 
						||
| 
								 | 
							
								      est.filtered_points.add_point((low + high) / 2.0, 0.0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # enough bucket points, but not enough total points
							 | 
						||
| 
								 | 
							
								  msg = est.get_msg()
							 | 
						||
| 
								 | 
							
								  assert msg.liveTorqueParameters.calPerc == (len(est.filtered_points) / est.min_points_total * 100 + 100) / 2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # add enough points to bucket with most capacity
							 | 
						||
| 
								 | 
							
								  key = list(est.filtered_points.buckets)[0]
							 | 
						||
| 
								 | 
							
								  for _ in range(est.min_points_total - len(est.filtered_points)):
							 | 
						||
| 
								 | 
							
								    est.filtered_points.add_point((key[0] + key[1]) / 2.0, 0.0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  msg = est.get_msg()
							 | 
						||
| 
								 | 
							
								  assert msg.liveTorqueParameters.calPerc == 100
							 |