PythonLibrary Python 2019年 1月 11日
間違った入力が与えられた時は,適切に失敗する必要がある. 今回の generate_with_int_hist では,画素値が整数値である必要があるが,実数値を入力してしまうとエラーが発生してしまう. また,整数値のビット数が多くなるとヒストグラムのデータ数が増えてしまうため,メモリ不足に陥る場合がある. 通常利用を考えて,実数値のピクセルの場合と 16 ビットを超える画像の場合には例外を出すようにする.
with such.A('MonoImage class') as it:
(中略)
@it.should('generate integer histogram')
def test():
(中略)
### raise exception when over 16 bit MonoImage inputs
mi17 = MonoImage.create_with_array([1, 2, 3], np.uint32, 17)
with it.assertRaises(ValueError):
mi17.generate_with_int_hist()
### raise exception when double MonoImage inputs
mid = MonoImage.create_with_array([1, 2, 3], np.double, 0)
with it.assertRaises(ValueError):
mid.generate_with_int_hist()
class MonoImage:
(中略)
def generate_with_int_hist(self):
if self.bits > 16:
raise ValueError('bits should be less than 16')
if self.bits == 0:
raise ValueError('should be int MonoImage')
今回もあまり長くならなかったが今日はここまで.