Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฉันจะเขียนการทดสอบหน่วยเทียบกับโค้ดที่ใช้ Matplotlib ได้อย่างไร


ในการเขียนกรณีทดสอบหน่วยเทียบกับโค้ด เราสามารถพิจารณาพล็อตที่ใช้อาร์เรย์เป็นจุด x และพล็อตเป็น y=x^2 ขณะทดสอบ เราจะแยก y_data สำหรับจุดข้อมูล x-

ขั้นตอน

  • สร้างวิธีการ เช่น plot_sqr_curve(x) เพื่อพล็อต x และ x^2 โดยใช้ plot() เมธอดและส่งคืนพล็อต
  • ในการทดสอบ ให้ใช้ unittest.TestCase
  • เขียน test_curve_sqr_plot() วิธีการที่มีข้อความต่อไปนี้
    • สร้างจุดข้อมูลสำหรับ x เพื่อพล็อตเส้นโค้ง
    • ใช้จุดข้อมูล x ด้านบน ให้สร้างจุดข้อมูล y
    • ใช้จุดข้อมูล x และ y วาดเส้นโค้ง
    • ใช้ pt (จากขั้นตอนที่ 5) ดึงข้อมูล x และ y
    • ตรวจสอบว่านิพจน์ที่กำหนดเป็นจริงหรือไม่

ตัวอย่าง

import unittest
import numpy as np
from matplotlib import pyplot as plt
def plot_sqr_curve(x):
   """
   Plotting x points with y = x^2.
   """
return plt.plot(x, np.square(x))
class TestSqrCurve(unittest.TestCase):
def test_curve_sqr_plot(self):
   x = np.array([1, 3, 4])
   y = np.square(x)
   pt, = plot_sqr_curve(x)
   y_data = pt.get_data()[1]
   x_data = pt.get_data()[0]
   self.assertTrue((y == y_data).all())
   self.assertTrue((x == x_data).all())
if __name__ == '__main__':
   unittest.main()

ผลลัพธ์

Ran 1 test in 1.587s
OK