adds aa filter to deinterlacer
This commit is contained in:
64
tests/unit/test_deinterlace_filter.py
Normal file
64
tests/unit/test_deinterlace_filter.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import unittest
|
||||
|
||||
from ffx.cli import convert
|
||||
from ffx.filter.deinterlace_filter import DeinterlaceFilter
|
||||
from ffx.filter.filter import Filter
|
||||
|
||||
|
||||
class DeinterlaceFilterTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
Filter.filterChain.clear()
|
||||
|
||||
def tearDown(self):
|
||||
Filter.filterChain.clear()
|
||||
|
||||
def getPayload(self, mode=DeinterlaceFilter.DEFAULT_MODE):
|
||||
deinterlaceFilter = DeinterlaceFilter(mode=mode)
|
||||
payload, = deinterlaceFilter.getYield()
|
||||
return payload
|
||||
|
||||
def test_default_mode_yields_only_bwdif(self):
|
||||
payload = self.getPayload()
|
||||
|
||||
self.assertEqual(['bwdif=mode=1'], payload['tokens'])
|
||||
|
||||
def test_up_down_mode_yields_lanczos_scales_after_bwdif(self):
|
||||
payload = self.getPayload(DeinterlaceFilter.UP_DOWN_MODE)
|
||||
|
||||
self.assertEqual(
|
||||
[
|
||||
'bwdif=mode=1',
|
||||
'scale=iw*2:ih*2:flags=lanczos',
|
||||
'scale=iw/2:ih/2:flags=lanczos',
|
||||
],
|
||||
payload['tokens'],
|
||||
)
|
||||
|
||||
def test_hq_denoise_mode_yields_hqdn3d_after_bwdif(self):
|
||||
payload = self.getPayload(DeinterlaceFilter.HQ_DENOISE_MODE)
|
||||
|
||||
self.assertEqual(
|
||||
['bwdif=mode=1', 'hqdn3d=1.5:1.5:3:3'],
|
||||
payload['tokens'],
|
||||
)
|
||||
|
||||
def test_unknown_mode_is_rejected(self):
|
||||
with self.assertRaisesRegex(ValueError, 'Unknown deinterlace mode: other'):
|
||||
DeinterlaceFilter(mode='other')
|
||||
|
||||
def test_cli_accepts_named_modes_and_preserves_bare_flag_behavior(self):
|
||||
upDownContext = convert.make_context(
|
||||
'convert',
|
||||
['--deinterlace', 'up_down'],
|
||||
)
|
||||
bareFlagContext = convert.make_context('convert', ['--deinterlace'])
|
||||
omittedContext = convert.make_context('convert', [])
|
||||
|
||||
self.assertEqual('up_down', upDownContext.params['deinterlace'])
|
||||
self.assertEqual('default', bareFlagContext.params['deinterlace'])
|
||||
self.assertEqual('none', omittedContext.params['deinterlace'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user