0

私は機能を持っています:

from django.contrib.gis.measure import Distance, D

def RunLengthCalc(mod_ewdim, mod_ewspacing, cols):
    y = D(inch=mod_ewspacing)  # user input
    x = D(inch=mod_ewdim)  # user input
    z = D(inch=3)  # constant
    lrun = ((x * cols) + (y * (cols - 1))) + zrun
    return lrun

と私のテスト:

def test_run_length_calculation(self):
    l = RunLengthCalc(26.5, 1, 25)
    self.assertEquals(l, D(inch=689.5))

しかし、テストを実行すると、この非常に紛らわしいエラーが発生します。

AssertionError: Distance(inch=689.5) != Distance(inch=689.5)

ここで何が問題なのか理解できません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

Distanceクラスの等式が実際にどのように実装されているかについては面白いビジネスがあるようです。

https://github.com/django/django/blob/master/django/contrib/gis/measure.py#L87

そのコードを読むと、あなたが持っているものが機能するはずのように見えます...しかし、明らかにそうではありません。

次のように特定の単位値を比較することで、問題を解決できると思います。

self.assertEquals(l.inch, D(inch=689.5).inch)

于 2012-10-25T23:55:53.827 に答える