是否有更复杂一点的实例吗?
时间: 2024-03-24 21:38:39 浏览: 62
当然可以,下面是一个稍微复杂一些的NumPy测试实例:
```python
import unittest
import numpy as np
class NumpyTestCase(unittest.TestCase):
def test_numpy_array_creation(self):
# Test array creation
arr1 = np.array([1, 2, 3])
arr2 = np.arange(1, 4)
arr3 = np.zeros(3)
arr4 = np.ones(3)
arr5 = np.random.rand(3)
self.assertTrue(np.array_equal(arr1, arr2))
self.assertTrue(np.array_equal(arr3, np.array([0, 0, 0])))
self.assertTrue(np.array_equal(arr4, np.array([1, 1, 1])))
self.assertTrue(np.all(np.logical_and(arr5 >= 0, arr5 <= 1))))
def test_numpy_array_manipulation(self):
# Test array manipulation
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.concatenate((arr1, arr2))
arr4 = np.stack((arr1, arr2))
self.assertTrue(np.array_equal(arr3, np.array([1, 2, 3, 4, 5, 6])))
self.assertTrue(np.array_equal(arr4, np.array([[1, 2, 3], [4, 5, 6]])))
def test_numpy_array_math(self):
# Test array math
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = arr1 + arr2
arr4 = arr1 * arr2
arr5 = np.dot(arr1, arr2)
self.assertTrue(np.array_equal(arr3, np.array([5, 7, 9])))
self.assertTrue(np.array_equal(arr4, np.array([4, 10, 18])))
self.assertEqual(arr5, 32)
if __name__ == '__main__':
unittest.main()
```
在上述示例中,我们定义了三个测试方法:
- test_numpy_array_creation(): 测试NumPy数组的创建,包括使用np.array()、np.arange()、np.zeros()、np.ones()和np.random.rand()函数创建数组,并测试它们的值是否正确。
- test_numpy_array_manipulation(): 测试NumPy数组的操作,包括使用np.concatenate()和np.stack()函数进行数组拼接和堆叠,并测试它们的结果是否正确。
- test_numpy_array_math(): 测试NumPy数组的数学运算,包括向量加法、向量乘法和向量点积,并测试运算结果是否正确。
在这个示例中,我们测试了NumPy数组的创建、操作和数学运算,以确保它们的行为符合预期。
阅读全文