extracted method load_pickled_asset

pull/11/head
András Veres-Szentkirályi 2017-01-12 12:54:07 +01:00
rodzic 81b45e7e4e
commit 5eb8a468e4
3 zmienionych plików z 12 dodań i 14 usunięć

Wyświetl plik

@ -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)

Wyświetl plik

@ -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)

Wyświetl plik

@ -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)