pic-to-header / tests /test_core.py
MakiAi's picture
feat: pic-to-header の初期実装
9100260
raw
history blame
2.12 kB
import unittest
import os
import cv2
import numpy as np
from pic_to_header.core import process_header_image
class TestCore(unittest.TestCase):
def setUp(self):
self.input_image_path = 'test_input.png'
self.mask_image_path = 'test_mask.png'
self.output_image_path = 'test_output.png'
# テスト用の入力画像を作成
input_image = np.ones((100, 100, 3), dtype=np.uint8) * 255
cv2.imwrite(self.input_image_path, input_image)
# テスト用のマスク画像を作成
mask_image = np.zeros((100, 100), dtype=np.uint8)
mask_image[25:75, 25:75] = 255
cv2.imwrite(self.mask_image_path, mask_image)
def tearDown(self):
# テスト用のファイルを削除
for file in [self.input_image_path, self.mask_image_path, self.output_image_path]:
if os.path.exists(file):
os.remove(file)
def test_process_header_image(self):
# process_header_image 関数をテスト
result = process_header_image(self.input_image_path, self.mask_image_path, self.output_image_path)
# 出力ファイルが作成されたことを確認
self.assertTrue(os.path.exists(self.output_image_path))
# 出力画像を読み込み
output_image = cv2.imread(self.output_image_path, cv2.IMREAD_UNCHANGED)
# 出力画像が正しいサイズであることを確認
self.assertEqual(output_image.shape[:2], (100, 100))
# アルファチャンネルが正しく適用されていることを確認
self.assertEqual(output_image.shape[2], 4) # BGRAチャンネル
# マスクが正しく適用されていることを確認
np.testing.assert_array_equal(output_image[25:75, 25:75, 3], 255)
np.testing.assert_array_equal(output_image[:25, :, 3], 0)
np.testing.assert_array_equal(output_image[75:, :, 3], 0)
np.testing.assert_array_equal(output_image[:, :25, 3], 0)
np.testing.assert_array_equal(output_image[:, 75:, 3], 0)
if __name__ == '__main__':
unittest.main()