我正在编写测试,其中一项计算点之间的距离。当我调用该函数并打印保存该值的变量或在调试器中查看它时,就会得到。
157249.381272
当我使用相同的输入调用测试中的函数时,测试失败。 x实际上是
157249.38127194397.
此值被打印到终端。如何获得变量的实际值而不必查看终端错误语句?最佳做法是什么?
import math
import numpy as np
import unittest
def test_compute_distance(self):
x = compute_distance(0,0, 1,1)
self.assertAlmostEqual(x,157249.381272)
EARTH_RADIUS = 6371000.0
def compute_distance(lat1, lon1, lat2, lon2):
delta_lat = math.radians(float(lat2) - float(lat1))
delta_lon = math.radians(float(lon2) - float(lon1))
a = math.sin(delta_lat / 2) * math.sin(delta_lat / 2) + \
math.cos(math.radians(float(lat1))) * \
math.cos(math.radians(float(lat2))) * \
math.sin(delta_lon / 2) * math.sin(delta_lon / 2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
return c * EARTH_RADIUS
test_compute_distance()