def get_qualities(layer): qualities = [] with open( os.path.join('data', FOLDER_NAME, 'quality', FILENAME.format(layer))) as f: psnrs = [] ssims = [] next(f) next(f) reader = csv.reader(f, delimiter='\t') for row in reader: if row[0] == "Avg:": if not math.isclose(float(row[PSNR]), avg(psnrs), abs_tol=0.01): # abs_tol=1e-05): # print(float(row[PSNR]), avg(psnrs)) raise Exception( "Wrong PSNR average for layer {}".format(layer)) if not math.isclose( float(row[SSIM]), avg(ssims), abs_tol=1e-05): raise Exception( "Wrong SSIM average for layer {}".format(layer)) elif row[0] not in IGNORE_LINE_NAMES: psnrs.append(float(row[PSNR])) ssims.append(float(row[SSIM])) for i in range(0, len(psnrs), FRAMES_IN_SEG): psnr_subset = psnrs[i:i + FRAMES_IN_SEG] ssim_subset = ssims[i:i + FRAMES_IN_SEG] qualities.append(Quality(psnr_subset, ssim_subset)) return qualities
from common import Segment from common import Quality from roger_allocator import get_best_received_segment from roger_allocator import average_quals from roger_allocator import Allocator import math received_times = [[10, 100], [11, 110], [12, 120], [13, 130]] segments = [ [ Segment(0, 0, 30, Quality([.1], [.01])), Segment(1, 0, 130, Quality([.11], [.011])) ], [ Segment(0, 1, 40, Quality([.15], [.015])), Segment(1, 1, 140, Quality([.151], [.0151])) ], [ Segment(0, 2, 50, Quality([.2], [.02])), Segment(1, 2, 150, Quality([.21], [.021])) ], [ Segment(0, 3, 60, Quality([.35], [.035])), Segment(1, 3, 160, Quality([.351], [.0351])) ] ] def test_get_best_received_segment(): assert (get_best_received_segment(