kopia lustrzana https://github.com/dnet/pySSTV
extracted method load_pickled_asset
rodzic
81b45e7e4e
commit
5eb8a468e4
|
@ -1,4 +1,9 @@
|
||||||
from os import path
|
from os import path
|
||||||
|
import pickle
|
||||||
|
|
||||||
def get_asset_filename(filename):
|
def get_asset_filename(filename):
|
||||||
return path.join(path.dirname(__file__), 'assets', filename)
|
return path.join(path.dirname(__file__), 'assets', filename)
|
||||||
|
|
||||||
|
def load_pickled_asset(filename):
|
||||||
|
with open(get_asset_filename(filename + '.p'), 'rb') as f:
|
||||||
|
return pickle.load(f)
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
import unittest
|
import unittest
|
||||||
from itertools import islice
|
from itertools import islice
|
||||||
import pickle
|
|
||||||
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from pysstv import color
|
from pysstv import color
|
||||||
from pysstv.tests.common import get_asset_filename
|
from pysstv.tests.common import get_asset_filename, load_pickled_asset
|
||||||
|
|
||||||
|
|
||||||
class TestMartinM1(unittest.TestCase):
|
class TestMartinM1(unittest.TestCase):
|
||||||
|
@ -17,14 +16,12 @@ class TestMartinM1(unittest.TestCase):
|
||||||
self.lena = color.MartinM1(lena, 48000, 16)
|
self.lena = color.MartinM1(lena, 48000, 16)
|
||||||
|
|
||||||
def test_gen_freq_bits(self):
|
def test_gen_freq_bits(self):
|
||||||
with open(get_asset_filename("MartinM1_freq_bits.p"), 'rb') as f:
|
expected = load_pickled_asset("MartinM1_freq_bits")
|
||||||
expected = pickle.load(f)
|
|
||||||
actual = list(islice(self.s.gen_freq_bits(), 0, 1000))
|
actual = list(islice(self.s.gen_freq_bits(), 0, 1000))
|
||||||
self.assertEqual(expected, actual)
|
self.assertEqual(expected, actual)
|
||||||
|
|
||||||
def test_gen_freq_bits_lena(self):
|
def test_gen_freq_bits_lena(self):
|
||||||
with open(get_asset_filename("MartinM1_freq_bits_lena.p"), 'rb') as f:
|
expected = load_pickled_asset("MartinM1_freq_bits_lena")
|
||||||
expected = pickle.load(f)
|
|
||||||
actual = list(islice(self.lena.gen_freq_bits(), 0, 1000))
|
actual = list(islice(self.lena.gen_freq_bits(), 0, 1000))
|
||||||
self.assertEqual(expected, actual)
|
self.assertEqual(expected, actual)
|
||||||
|
|
||||||
|
@ -42,7 +39,6 @@ class TestMartinM1(unittest.TestCase):
|
||||||
self.maxDiff = None
|
self.maxDiff = None
|
||||||
line_numbers = [1, 10, 100]
|
line_numbers = [1, 10, 100]
|
||||||
for line in line_numbers:
|
for line in line_numbers:
|
||||||
with open(get_asset_filename("MartinM1_encode_line_lena%d.p" % line), 'rb') as f:
|
expected = load_pickled_asset("MartinM1_encode_line_lena{0}".format(line))
|
||||||
expected = pickle.load(f)
|
|
||||||
actual = list(self.lena.encode_line(line))
|
actual = list(self.lena.encode_line(line))
|
||||||
self.assertEqual(expected, actual)
|
self.assertEqual(expected, actual)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import unittest
|
import unittest
|
||||||
from itertools import islice
|
from itertools import islice
|
||||||
from six.moves import zip
|
from six.moves import zip
|
||||||
import pickle
|
|
||||||
import mock
|
import mock
|
||||||
from mock import MagicMock
|
from mock import MagicMock
|
||||||
from six import BytesIO
|
from six import BytesIO
|
||||||
|
@ -10,7 +9,7 @@ import hashlib
|
||||||
|
|
||||||
from pysstv import sstv
|
from pysstv import sstv
|
||||||
from pysstv.sstv import SSTV
|
from pysstv.sstv import SSTV
|
||||||
from pysstv.tests.common import get_asset_filename
|
from pysstv.tests.common import load_pickled_asset
|
||||||
|
|
||||||
|
|
||||||
class TestSSTV(unittest.TestCase):
|
class TestSSTV(unittest.TestCase):
|
||||||
|
@ -47,8 +46,7 @@ class TestSSTV(unittest.TestCase):
|
||||||
# FIXME: Instead of using a test fixture, 'expected' should be synthesized?
|
# FIXME: Instead of using a test fixture, 'expected' should be synthesized?
|
||||||
def test_gen_values(self):
|
def test_gen_values(self):
|
||||||
gen_values = self.s.gen_values()
|
gen_values = self.s.gen_values()
|
||||||
with open(get_asset_filename("SSTV_gen_values.p"), 'rb') as f:
|
expected = load_pickled_asset("SSTV_gen_values")
|
||||||
expected = pickle.load(f)
|
|
||||||
for e, g in zip(expected, gen_values):
|
for e, g in zip(expected, gen_values):
|
||||||
self.assertAlmostEqual(e, g, delta=0.000000001)
|
self.assertAlmostEqual(e, g, delta=0.000000001)
|
||||||
|
|
||||||
|
@ -60,8 +58,7 @@ class TestSSTV(unittest.TestCase):
|
||||||
# and having different results.
|
# and having different results.
|
||||||
# https://en.wikipedia.org/wiki/Quantization_%28signal_processing%29
|
# https://en.wikipedia.org/wiki/Quantization_%28signal_processing%29
|
||||||
sstv.random = MagicMock(return_value=0.4) # xkcd:221
|
sstv.random = MagicMock(return_value=0.4) # xkcd:221
|
||||||
with open(get_asset_filename("SSTV_gen_samples.p"), 'rb') as f:
|
expected = load_pickled_asset("SSTV_gen_samples")
|
||||||
expected = pickle.load(f)
|
|
||||||
actual = list(islice(gen_values, 0, 1000))
|
actual = list(islice(gen_values, 0, 1000))
|
||||||
for e, a in zip(expected, actual):
|
for e, a in zip(expected, actual):
|
||||||
self.assertAlmostEqual(e, a, delta=1)
|
self.assertAlmostEqual(e, a, delta=1)
|
||||||
|
|
Ładowanie…
Reference in New Issue