Python 如何使用pytest为fibonacci创建测试类或函数?

Python 如何使用pytest为fibonacci创建测试类或函数?,python,python-3.x,fibonacci,Python,Python 3.x,Fibonacci,例如,我如何为fibonnaci创建一个测试类?这是第n个fibonnaci的闭合方程 您需要创建一个返回该值的函数。然后 def fibR(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) print (fibR(5)) 或者,您可以对已知的fib值进行测试 def fibequation(n): return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)) #Tes

例如,我如何为fibonnaci创建一个测试类?

这是第n个fibonnaci的闭合方程

您需要创建一个返回该值的函数。然后

def fibR(n):
 if n==1 or n==2:
  return 1
 return fib(n-1)+fib(n-2)
print (fibR(5))
或者,您可以对已知的fib值进行测试

def fibequation(n):
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

#Testing fibR
assert(fibR(10),fibequation(10))

如果你的纤维对这些值有效,那么它就做得很好。

这是第n个纤维Naci的闭合方程

您需要创建一个返回该值的函数。然后

def fibR(n):
 if n==1 or n==2:
  return 1
 return fib(n-1)+fib(n-2)
print (fibR(5))
或者,您可以对已知的fib值进行测试

def fibequation(n):
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

#Testing fibR
assert(fibR(10),fibequation(10))

如果您的fib适用于这些值,那么它运行得很好。

我将您现有的代码粘贴到一个名为
fib.py
的文件中:

f12 = 144
f14 = 377
assert(fibR(12),f12)
assert(fibR(14),f14)
def fibR(n):
 if n==1 or n==2:
  return 1
 return fibR(n-1)+fibR(n-2)
在同一个目录中,我创建了一个名为
test\u fib.py
的文件:

f12 = 144
f14 = 377
assert(fibR(12),f12)
assert(fibR(14),f14)
def fibR(n):
 if n==1 or n==2:
  return 1
 return fibR(n-1)+fibR(n-2)
如果我从命令行在此目录中运行
py.test
,我可以使用以下测试自动检查
fibR
的正确性:

import pytest
from fib import fibR

def test_fib_1_equals_1():
    assert fibR(1) == 1

def test_fib_2_equals_1():
    assert fibR(2) == 1

def test_fib_6_equals_8():
    assert fibR(6) == 8

我将您现有的代码粘贴到一个名为
fib.py
的文件中:

f12 = 144
f14 = 377
assert(fibR(12),f12)
assert(fibR(14),f14)
def fibR(n):
 if n==1 or n==2:
  return 1
 return fibR(n-1)+fibR(n-2)
在同一个目录中,我创建了一个名为
test\u fib.py
的文件:

f12 = 144
f14 = 377
assert(fibR(12),f12)
assert(fibR(14),f14)
def fibR(n):
 if n==1 or n==2:
  return 1
 return fibR(n-1)+fibR(n-2)
如果我从命令行在此目录中运行
py.test
,我可以使用以下测试自动检查
fibR
的正确性:

import pytest
from fib import fibR

def test_fib_1_equals_1():
    assert fibR(1) == 1

def test_fib_2_equals_1():
    assert fibR(2) == 1

def test_fib_6_equals_8():
    assert fibR(6) == 8

对于测试类,你是指TDD吗?或者什么?测试fibR(n)是否自动正确的东西。对于测试类,您是指TDD吗?或者什么?测试fibR(n)是否自动正确的东西。我不能用递归测试吗?@EdS你用递归测试是什么意思?python中没有内置的fib函数,因此,您需要创建一个递归函数来测试您已经创建的fib函数,因此,这是毫无意义的。我不能使用递归进行测试吗?@EdS使用递归进行测试意味着什么?python中没有内置的fib函数,因此,您需要创建一个递归函数来测试您已经创建的fib函数,因此,它毫无意义。