Estoy desarrollando un programa que realiza algunos cálculos de puntos flotantes. ¿Hay alguna manera de probar mis funciones (que entregan flotadores) con doctests?¿Cómo probar los resultados de flota con doctest?
Respuesta
Claro, sólo formato a los flotadores con un formato razonable, basado en su conocimiento de qué precisión se espera que ellos exhiben - por ejemplo, si se espera una precisión de 2 dígitos después del punto decimal, se puede utilizar:
''' Rest of your docstring and then...
>>> '%.2f' % funcreturningfloat()
'123.45'
'''
The documentation tiene una sugerencia
números de coma flotante son también sujetos a pequeñas variaciones de salida a través de plataformas, porque Python se remite a la biblioteca plataforma C para float formateando, y las bibliotecas C varían ampliamente en calidad aquí . formato de cadena
>>> 1./7 # risky
0.14285714285714285
>>> print 1./7 # safer
0.142857142857
>>> print round(1./7, 6) # much safer
0.142857
permite tuplas prueba de uso.
>>> funcreturningfloattuple(1.0)
(1.0, 1.0)
>>> '%.2f, %.2f' % funcreturningfloattuple(1.0)
'1.00, 1.00'
>>> funcreturningfloattuple(1.4)
(1.3999999999999999, 1.3999999999999999)
>>> '%.2f, %.2f' % funcreturningfloattuple(1.4)
'1.40, 1.40'
Los siguientes obras para nosetests:
>>> 1/3. # doctest: +ELLIPSIS
0.333...
Usted puede utilizar numtest - una extensión doctest que simplifica la prueba de los resultados numéricos. https://pypi.python.org/pypi/numtest
>>> 1.0/3
0.333
ejemplo Error: 1,0/3 esperado: 0,333 conseguida: 0,3333333333333333
>>> 1.0/3 # doctest: +NUMBER
0.333
import doctest
import numtest
doctest.testmod()
Proceso terminado con código de salida 0
Pasaron todas las pruebas. No necesita formato de cadenas en sus pruebas.
- 1. ¿Cómo puedo incluir caracteres especiales (tabulación, nueva línea) en una cadena de resultados doctest de python?
- 2. Python: ¿Es posible probar solo funciones específicas con doctest en un módulo?
- 3. ¿Cómo probar los controladores con CodeIgniter?
- 4. ¿Cómo puedo probar los servlets con JUnit?
- 5. python doctest excepción manejo de prueba
- 6. Python - doctest vs. unittest
- 7. Doctest e importaciones relativas
- 8. Usando RSpec, cómo puedo probar los resultados de un bloque de excepción de rescate
- 9. ¿Cómo se puede probar Get-ChildItem sin resultados (cero archivos)?
- 10. doctest funciones definidas localmente
- 11. XSL: FO, Flota en F.O.P
- 12. Clojure equivalente a Python doctest?
- 13. ¿Cómo probar con NSUserDefaults?
- 14. ¿El doble de fundición flota siempre el mismo valor?
- 15. ¿Cómo probar los encabezados esperados?
- 16. ¿Cómo combino los resultados de dos consultas con el pedido?
- 17. Cómo transmitir los resultados de la consulta MongoDB con nodejs?
- 18. ¿Cómo asegurarse de que un número flota en Erlang?
- 19. ¿Cómo probar los decoradores de función Python?
- 20. Sanity Check: ¿Flota como clave principal?
- 21. Cómo navego en los resultados de Diff
- 22. doctest para la cadena de documentación anidada
- 23. Spinner flota hacia abajo cuando horizontal alineado
- 24. ¿Cómo ordenar los resultados de View programmatically?
- 25. ¿Cómo probar rápidamente los gadgets de Windows?
- 26. Ruby on Rails: probar si los resultados de ActiveRecord incluyen un valor
- 27. ¿Es posible probar algunos resultados AddModelError en ASP.NET MVC?
- 28. Cómo paginar los resultados de Doctrine2
- 29. Cómo probar XMLHttpRequest con Jasmine
- 30. lista Convert de fracciones de flota en Python