# Path: tests_basic/test_winstonlutz.py
# TEST_DIR = 'Winston-Lutz'
# class TestWLLoading(TestCase, FromDemoImageTesterMixin, FromURLTesterMixin):
# class GeneralTests(TestCase):
# class TestPublishPDF(TestCase):
# class TestPlottingSaving(TestCase):
# class WinstonLutzMixin(CloudFileMixin):
# class WLDemo(WinstonLutzMixin, TestCase):
# class WLPerfect30x8(WinstonLutzMixin, TestCase):
# class WLPerfect30x2(WinstonLutzMixin, TestCase):
# class WLPerfect10x4(WinstonLutzMixin, TestCase):
# class WLNoisy30x5(WinstonLutzMixin, TestCase):
# class WLLateral3mm(WinstonLutzMixin, TestCase):
# class WLLongitudinal3mm(WinstonLutzMixin, TestCase):
# class WLVertical3mm(WinstonLutzMixin, TestCase):
# class WLDontUseFileNames(WinstonLutzMixin, TestCase):
# class WLUseFileNames(WinstonLutzMixin, TestCase):
# class WLBadFilenames(TestCase):
#     def test_loading_1_image_fails(self):
#     def test_invalid_dir(self):
#     def test_load_from_file_object(self):
#     def test_load_from_stream(self):
#     def test_load_2d_from_stream(self):
#     def setUpClass(cls):
#     def test_run_demo(self):
#     def test_results(self):
#     def test_not_yet_analyzed(self):
#     def test_str_or_enum(self):
#     def test_bb_override(self):
#     def test_bb_shift_instructions(self):
#     def test_results_data(self):
#     def test_bb_too_far_away_fails(self):
#     def setUpClass(cls):
#     def test_publish_pdf(self):
#     def test_publish_w_metadata_and_notes(self):
#     def setUp(self):
#     def tearDownClass(cls):
#     def test_plot(self):
#     def test_save(self):
#     def test_plot_wo_all_axes(self):
#     def setUpClass(cls):
#     def test_number_of_images(self):
#     def test_gantry_iso(self):
#     def test_collimator_iso(self):
#     def test_couch_iso(self):
#     def test_epid_deviation(self):
#     def test_bb_max_distance(self):
#     def test_bb_median_distance(self):
#     def test_bb_shift_vector(self):
#     def test_known_axis_of_rotation(self):
#     def setUpClass(cls):
#     def test_bad_filenames(self):


from unittest import TestCase
from tests_basic.test_winstonlutz import WinstonLutzMixin, Vector
import numpy as np




class KatyiX0(WinstonLutzMixin, TestCase):
    # independently verified
    file_path = ['Katy iX', '0.zip']
    num_images = 17
    gantry_iso_size = 1
    collimator_iso_size = 1
    couch_iso_size = 1.3
    cax2bb_max_distance = 1.2
    cax2bb_median_distance = 0.8

# Path: tests_basic/test_winstonlutz.py
# TEST_DIR = 'Winston-Lutz'
# class TestWLLoading(TestCase, FromDemoImageTesterMixin, FromURLTesterMixin):
# class GeneralTests(TestCase):
# class TestPublishPDF(TestCase):
# class TestPlottingSaving(TestCase):
# class WinstonLutzMixin(CloudFileMixin):
# class WLDemo(WinstonLutzMixin, TestCase):
# class WLPerfect30x8(WinstonLutzMixin, TestCase):
# class WLPerfect30x2(WinstonLutzMixin, TestCase):
# class WLPerfect10x4(WinstonLutzMixin, TestCase):
# class WLNoisy30x5(WinstonLutzMixin, TestCase):
# class WLLateral3mm(WinstonLutzMixin, TestCase):
# class WLLongitudinal3mm(WinstonLutzMixin, TestCase):
# class WLVertical3mm(WinstonLutzMixin, TestCase):
# class WLDontUseFileNames(WinstonLutzMixin, TestCase):
# class WLUseFileNames(WinstonLutzMixin, TestCase):
# class WLBadFilenames(TestCase):
#     def test_loading_1_image_fails(self):
#     def test_invalid_dir(self):
#     def test_load_from_file_object(self):
#     def test_load_from_stream(self):
#     def test_load_2d_from_stream(self):
#     def setUpClass(cls):
#     def test_run_demo(self):
#     def test_results(self):
#     def test_not_yet_analyzed(self):
#     def test_str_or_enum(self):
#     def test_bb_override(self):
#     def test_bb_shift_instructions(self):
#     def test_results_data(self):
#     def test_bb_too_far_away_fails(self):
#     def setUpClass(cls):
#     def test_publish_pdf(self):
#     def test_publish_w_metadata_and_notes(self):
#     def setUp(self):
#     def tearDownClass(cls):
#     def test_plot(self):
#     def test_save(self):
#     def test_plot_wo_all_axes(self):
#     def setUpClass(cls):
#     def test_number_of_images(self):
#     def test_gantry_iso(self):
#     def test_collimator_iso(self):
#     def test_couch_iso(self):
#     def test_epid_deviation(self):
#     def test_bb_max_distance(self):
#     def test_bb_median_distance(self):
#     def test_bb_shift_vector(self):
#     def test_known_axis_of_rotation(self):
#     def setUpClass(cls):
#     def test_bad_filenames(self):


# Path: tests_complete/_test_all_winstonlutz.py
from unittest import TestCase
from tests_basic.test_winstonlutz import WinstonLutzMixin, Vector
import numpy as np





class KatyiX0(WinstonLutzMixin, TestCase):
    # independently verified
    file_path = ['Katy iX', '0.zip']
    num_images = 17
    gantry_iso_size = 1
    collimator_iso_size = 1
    couch_iso_size = 1.3
    cax2bb_max_distance = 1.2
    cax2bb_median_distance = 0.8

    bb_shift_vector = Vector(x=-0.5, y=0.4, z=-0.5)