Beispiel #1
0
def test_epochs_consistency_3():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='bright_2x1',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[-1., -1.],
                      delta_min=[-1., -1.],
                      delta_max=[-1., -1.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    clist.add_cadence(name='dark_2x1',
                      nepochs=2,
                      skybrightness=[0.35, 0.35],
                      delta=[-1., -1.],
                      delta_min=[-1., -1.],
                      delta_max=[-1., -1.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    tcore = clist.cadences['bright_2x1'].as_cadencecore()
    assert clist.cadences['dark_2x1'].epochs_consistency(tcore,
                                                         epochs=[0, 1]) is True

    tcore = clist.cadences['dark_2x1'].as_cadencecore()
    assert clist.cadences['bright_2x1'].epochs_consistency(
        tcore, epochs=[0, 1]) is False
Beispiel #2
0
 def test_cadence_single_double_skybrightness(self):
     clist = cadence.CadenceList()
     clist.reset()
     clist.add_cadence(name='bright',
                       nexposures=1,
                       skybrightness=[1.],
                       delta=[-1.],
                       delta_min=[-1.],
                       delta_max=[-1.],
                       instrument=['boss'])
     clist.add_cadence(name='dark',
                       nexposures=1,
                       skybrightness=[0.35],
                       delta=[-1.],
                       delta_min=[-1.],
                       delta_max=[-1.],
                       instrument=['boss'])
     clist.add_cadence(name='two',
                       nexposures=2,
                       skybrightness=[1., 1.],
                       delta=[0., 30.],
                       delta_min=[0., 20.],
                       delta_max=[0., 40.],
                       instrument=['boss', 'boss'])
     assert clist.cadence_consistency('bright',
                                      'two',
                                      return_solutions=False) == True
     assert clist.cadence_consistency('dark', 'two',
                                      return_solutions=False) == False
Beispiel #3
0
    def test_set_packing(self):
        clist = cadence.CadenceList()
        clist.reset()
        cfile = os.path.join(os.getenv('ROBOSCHEDULER_DIR'), 'data',
                             'rsc-test-cadence.fits')
        clist.fromfits(cfile)

        packing = cadence.Packing(field_cadence='faint_1x1')
        assert (packing.nepochs == 1)
        for i in np.arange(packing.nepochs, dtype=np.int32):
            assert (packing.epoch_targets[i].max() == -1)
            assert (packing.epoch_targets[i].min() == -1)
            assert (packing.epoch_nexposures[i] == 1)
            assert (packing.epoch_nused[i] == 0)
        for i in np.arange(packing.epoch_nexposures.sum(), dtype=np.int32):
            assert (packing.exposures[i] == -1)

        packing = cadence.Packing(field_cadence='faint_month_4x2')
        assert (packing.nepochs == 4)
        for i in np.arange(packing.nepochs, dtype=np.int32):
            assert (packing.epoch_targets[i].max() == -1)
            assert (packing.epoch_targets[i].min() == -1)
            assert (packing.epoch_nexposures[i] == 2)
            assert (packing.epoch_nused[i] == 0)
        for i in np.arange(packing.epoch_nexposures.sum(), dtype=np.int32):
            assert (packing.exposures[i] == -1)
Beispiel #4
0
def test_cadence_consistency_3():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='mwm_tess_rgb_2x1',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[0., 26.],
                      delta_min=[0., 1.],
                      delta_max=[0., 3000.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    clist.add_cadence(name='csc_faint_boss_1x4',
                      nepochs=1,
                      skybrightness=[0.35],
                      delta=[-1.],
                      delta_min=[-1.],
                      delta_max=[-1.],
                      nexp=[4],
                      max_length=[1.])

    ok, epochs_list = clist.cadence_consistency('mwm_tess_rgb_2x1',
                                                'csc_faint_boss_1x4')
    assert ok is False
Beispiel #5
0
def test_epochs_consistency_1():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='timed_2x1',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[0., 2.],
                      delta_min=[0., 1.],
                      delta_max=[0., 20.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    clist.add_cadence(name='timed_3x1',
                      nepochs=3,
                      skybrightness=[1., 1., 1.],
                      delta=[0., 2., 2.],
                      delta_min=[0., 1., 1.],
                      delta_max=[0., 20., 20.],
                      nexp=[1, 1, 1],
                      max_length=[1., 1., 1.])

    tcore = clist.cadences['timed_2x1'].as_cadencecore()
    assert clist.cadences['timed_3x1'].epochs_consistency(
        tcore, epochs=[0, 1]) is True
    assert clist.cadences['timed_3x1'].epochs_consistency(
        tcore, epochs=[1, 2]) is True
    assert clist.cadences['timed_3x1'].epochs_consistency(
        tcore, epochs=[0, 2]) is False
Beispiel #6
0
    def test_check_target(self):
        clist = cadence.CadenceList()
        clist.reset()
        cfile = os.path.join(os.getenv('ROBOSCHEDULER_DIR'), 'data',
                             'rsc-test-cadence.fits')
        clist.fromfits(cfile)

        packing = cadence.Packing(field_cadence='faint_2x4')
        assert (packing.check_target(target_cadence='faint_1x1')['ok'] is True)
        assert (packing.check_target(target_cadence='faint_month_4x2')['ok'] is
                False)
        assert (packing.check_target(target_cadence='faint_2x2')['ok'] is True)
        assert (packing.check_target(target_cadence='bright_2x2')['ok'] is
                True)

        packing = cadence.Packing(field_cadence='bright_month_4x2')
        assert (packing.check_target(target_cadence='bright_1x1')['ok'] is
                True)
        assert (packing.check_target(target_cadence='bright_month_4x2')['ok']
                is True)
        assert (packing.check_target(target_cadence='bright_2x2')['ok'] is
                True)
        assert (packing.check_target(target_cadence='faint_2x2')['ok'] is
                False)
        assert (packing.check_target(target_cadence='bright_2x4')['ok'] is
                False)
        assert (packing.check_target(target_cadence='bright_month_2x2')['ok']
                is True)
        assert (packing.check_target(target_cadence='faint_month_2x2')['ok'] is
                False)
Beispiel #7
0
def test_cadence_consistency_4():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='dark_2x2',
                      nepochs=2,
                      skybrightness=[0.35, 0.35],
                      delta=[0., 26.],
                      delta_min=[0., 1.],
                      delta_max=[0., 3000.],
                      nexp=[2, 2],
                      max_length=[1., 1.])

    clist.add_cadence(name='dark_6x3',
                      nepochs=6,
                      skybrightness=[0.35] * 6,
                      delta=[0., 26., 26., 26., 26., 26.],
                      delta_min=[0., 1., 1., 1., 1., 1.],
                      delta_max=[0., 3000., 3000., 3000., 3000., 3000.],
                      nexp=[3] * 6,
                      max_length=[1.] * 6)

    clist.add_cadence(name='dark_4x1',
                      nepochs=4,
                      skybrightness=[0.35] * 4,
                      delta=[-1.] * 4,
                      delta_min=[-1.] * 4,
                      delta_max=[-1.] * 4,
                      nexp=[1] * 4,
                      max_length=[1.] * 4)

    clist.add_cadence(name='dark_8x1',
                      nepochs=8,
                      skybrightness=[0.35] * 8,
                      delta=[-1.] * 8,
                      delta_min=[-1.] * 8,
                      delta_max=[-1.] * 8,
                      nexp=[1] * 8,
                      max_length=[1.] * 8)

    ok, epochs_list = clist.cadence_consistency('dark_4x1', 'dark_2x2')
    assert ok is True

    ok, epochs_list = clist.cadence_consistency('dark_2x2', 'dark_6x3')
    assert ok is True

    ok, epochs_list = clist.cadence_consistency('dark_4x1', 'dark_6x3')
    assert ok is True

    ok, epochs_list = clist.cadence_consistency('dark_2x2', 'dark_4x1')
    assert ok is False

    ok, epochs_list = clist.cadence_consistency('dark_8x1', 'dark_2x2')
    assert ok is False

    ok, epochs_list = clist.cadence_consistency('dark_8x1', 'dark_6x3')
    assert ok is True
Beispiel #8
0
def test_cadence_evaluate_next():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='dark_2x2',
                      nepochs=2,
                      skybrightness=[0.35, 0.35],
                      delta=[0., 26.],
                      delta_min=[0., 1.],
                      delta_max=[0., 40.],
                      nexp=[2, 2],
                      max_length=[1., 1.])

    test_cadence = clist.cadences["dark_2x2"]

    idx = 0
    mjd_past = 0  # this would be returned by epochs_completed
    mjd_next = 59900
    skybrightness_next = 0.2
    observable, priority = \
    test_cadence.evaluate_next(epoch_idx=idx,
                               mjd_past=mjd_past,
                               mjd_next=mjd_next,
                               skybrightness_next=skybrightness_next)

    assert observable

    skybrightness_next = 0.5
    observable, priority = \
    test_cadence.evaluate_next(epoch_idx=idx,
                               mjd_past=mjd_past,
                               mjd_next=mjd_next,
                               skybrightness_next=skybrightness_next)

    assert not observable

    idx = 1
    mjd_past = 59895  # this would be returned by epochs_completed
    mjd_next = 59900
    skybrightness_next = 0.2
    observable, priority1 = \
    test_cadence.evaluate_next(epoch_idx=idx,
                               mjd_past=mjd_past,
                               mjd_next=mjd_next,
                               skybrightness_next=skybrightness_next)

    mjd_next = mjd_past + 25
    observable, priority2 = \
    test_cadence.evaluate_next(epoch_idx=idx,
                               mjd_past=mjd_past,
                               mjd_next=mjd_next,
                               skybrightness_next=skybrightness_next)

    assert observable
    assert priority2 > priority1
Beispiel #9
0
 def test_cadence_epochs(self):
     clist = cadence.CadenceList()
     clist.reset()
     clist.add_cadence(name='one',
                       nexposures=4,
                       skybrightness=[1., 1., 1., 1.],
                       delta=[0., 0., 1., 0.],
                       delta_min=[0., 0., 0.5, 0.],
                       delta_max=[0., 0., 1.5, 0.],
                       instrument=['boss'] * 4)
     assert clist.cadences['one'].nepochs == 2
     assert clist.cadences['one'].epoch_indx[0] == 0
     assert clist.cadences['one'].epoch_indx[1] == 2
Beispiel #10
0
def test_cadence_consistency_2():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='single_100x1',
                      nepochs=100,
                      skybrightness=[1.] * 100,
                      delta=[-1.] * 100,
                      delta_min=[-1.] * 100,
                      delta_max=[-1.] * 100,
                      nexp=[1] * 100,
                      max_length=[1.] * 100)

    clist.add_cadence(name='single_1x1',
                      nepochs=1,
                      skybrightness=[1.] * 1,
                      delta=[-1.] * 1,
                      delta_min=[-1.] * 1,
                      delta_max=[-1.] * 1,
                      nexp=[1] * 1,
                      max_length=[1.] * 1)

    clist.add_cadence(name='single_4x1',
                      nepochs=4,
                      skybrightness=[1.] * 4,
                      delta=[-1.] * 4,
                      delta_min=[-1.] * 4,
                      delta_max=[-1.] * 4,
                      nexp=[1] * 4,
                      max_length=[1.] * 4)

    clist.add_cadence(name='single_10x1',
                      nepochs=10,
                      skybrightness=[1.] * 10,
                      delta=[-1.] * 10,
                      delta_min=[-1.] * 10,
                      delta_max=[-1.] * 10,
                      nexp=[1] * 10,
                      max_length=[1.] * 10)

    ok, epochs_list = clist.cadence_consistency('single_1x1', 'single_100x1')
    assert ok is True
    assert len(epochs_list) == 100

    ok, epochs_list = clist.cadence_consistency('single_1x1', 'single_10x1')
    assert ok is True
    assert len(epochs_list) == 10

    ok, epochs_list = clist.cadence_consistency('single_4x1', 'single_10x1')
    assert ok is True
    assert len(epochs_list) == 210
Beispiel #11
0
def test_cadence_consistency_1():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='single_2x1',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[-1., -1.],
                      delta_min=[-1., -1.],
                      delta_max=[-1., -1.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    clist.add_cadence(name='timed_2x1',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[0., 2.],
                      delta_min=[0., 1.],
                      delta_max=[0., 20.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    clist.add_cadence(name='timed_3x1',
                      nepochs=3,
                      skybrightness=[1., 1., 1.],
                      delta=[0., 2., 2.],
                      delta_min=[0., 1., 1.],
                      delta_max=[0., 20., 20.],
                      nexp=[1, 1, 1],
                      max_length=[1., 1., 1.])

    ok, epochs_list = clist.cadence_consistency('single_2x1', 'timed_2x1')
    assert ok is True
    assert len(epochs_list) == 1
    assert epochs_list[0][0] == 0
    assert epochs_list[0][1] == 1

    ok, epochs_list = clist.cadence_consistency('timed_2x1', 'timed_3x1')
    assert ok is True
    assert len(epochs_list) == 2
    assert epochs_list[0][0] == 0
    assert epochs_list[0][1] == 1
    assert epochs_list[1][0] == 1
    assert epochs_list[1][1] == 2
Beispiel #12
0
 def test_cadence_single(self):
     clist = cadence.CadenceList()
     clist.reset()
     clist.add_cadence(name='one',
                       nexposures=1,
                       skybrightness=[1.],
                       delta=[-1.],
                       delta_min=[-1.],
                       delta_max=[-1.],
                       instrument=['boss'])
     clist.add_cadence(name='two',
                       nexposures=1,
                       skybrightness=[0.35],
                       delta=[-1.],
                       delta_min=[-1.],
                       delta_max=[-1.],
                       instrument=['boss'])
     assert clist.cadence_consistency('one', 'two',
                                      return_solutions=False) == True
Beispiel #13
0
    def test_cadence_file(self):
        clist = cadence.CadenceList()
        clist.reset()
        cfile = os.path.join(os.getenv('ROBOSCHEDULER_DIR'), 'data',
                             'rsc-test-cadence.fits')
        clist.fromfits(cfile)

        assert clist.ncadences == 12

        assert (clist.cadence_consistency(
            'bright_1x1', 'faint_1x1', return_solutions=False) is True)

        assert (clist.cadence_consistency(
            'faint_1x1', 'bright_1x1', return_solutions=False) is False)

        assert (clist.cadence_consistency(
            'faint_1x1', 'faint_1x4', return_solutions=False) is True)

        assert (clist.cadence_consistency(
            'faint_1x4', 'faint_1x1', return_solutions=False) is False)

        assert (clist.cadence_consistency(
            'faint_1x4', 'faint_1x4', return_solutions=False) is True)

        assert (clist.cadence_consistency(
            'faint_1x4', 'faint_1x4', return_solutions=False) is True)

        assert (clist.cadence_consistency(
            'faint_2x2', 'faint_month_2x2', return_solutions=False) is True)

        assert (clist.cadence_consistency(
            'faint_2x2', 'faint_month_4x2', return_solutions=False) is True)

        assert (clist.cadence_consistency('faint_month_2x2',
                                          'faint_month_4x2',
                                          return_solutions=False) is True)

        assert (clist.cadence_consistency('faint_month_2x2',
                                          'faint_month_4x2',
                                          return_solutions=False) is True)

        assert (clist.cadence_consistency(
            'faint_1x4', 'faint_month_4x2', return_solutions=False) is False)
Beispiel #14
0
def test_add_cadence_cfg():
    clist = cadence.CadenceList()
    clist.reset()

    test_file = os.path.join(
        os.path.dirname(os.path.realpath(__file__)),
        'test_cfginput.cfg',
    )

    clist.fromcfg(test_file)

    assert clist.cadences['single_1x1'].nepochs == 1
    assert clist.cadences['single_1x1'].nexp[0] == 1
    assert clist.cadences['single_1x1'].delta[0] == -1.
    assert clist.cadences['single_1x1'].delta_min[0] == -1.
    assert clist.cadences['single_1x1'].delta_max[0] == -1.
    assert np.abs(clist.cadences['single_1x1'].skybrightness[0] - 0.35) < 0.001
    assert clist.cadences['single_1x1'].max_length[0] == 100.

    assert clist.cadences['single_3xY'].nepochs == 3
    assert clist.cadences['single_3xY'].nexp[0] == 2
    assert clist.cadences['single_3xY'].nexp[1] == 3
    assert clist.cadences['single_3xY'].nexp[2] == 4
    assert clist.cadences['single_3xY'].delta[0] == 3.
    assert clist.cadences['single_3xY'].delta[1] == 4.
    assert clist.cadences['single_3xY'].delta[2] == 5.
    assert clist.cadences['single_3xY'].delta_min[0] == 6.
    assert clist.cadences['single_3xY'].delta_min[1] == 7.
    assert clist.cadences['single_3xY'].delta_min[2] == 8.
    assert clist.cadences['single_3xY'].delta_max[0] == 9.
    assert clist.cadences['single_3xY'].delta_max[1] == 10.
    assert clist.cadences['single_3xY'].delta_max[2] == 11.
    assert clist.cadences['single_3xY'].skybrightness[0] == 1.
    assert clist.cadences['single_3xY'].skybrightness[1] == 2.
    assert clist.cadences['single_3xY'].skybrightness[2] == 3.
    assert clist.cadences['single_3xY'].max_length[0] == 10.
    assert clist.cadences['single_3xY'].max_length[1] == 100.
    assert clist.cadences['single_3xY'].max_length[2] == 1000.

    arr = clist.toarray()
    assert len(arr) == 2
    assert arr['NEPOCHS'][0] == 1
    return
Beispiel #15
0
 def test_cadence_double_double(self):
     clist = cadence.CadenceList()
     clist.reset()
     clist.add_cadence(name='one',
                       nexposures=2,
                       skybrightness=[0.35, 0.35],
                       delta=[0., 30.],
                       delta_min=[0., 19.],
                       delta_max=[0., 41.],
                       instrument=['boss', 'boss'])
     clist.add_cadence(name='two',
                       nexposures=2,
                       skybrightness=[0.35, 0.35],
                       delta=[0., 30.],
                       delta_min=[0., 20.],
                       delta_max=[0., 40.],
                       instrument=['boss', 'boss'])
     assert clist.cadence_consistency('one', 'two',
                                      return_solutions=False) is True
     assert clist.cadence_consistency('two', 'one',
                                      return_solutions=False) is False
Beispiel #16
0
def test_add_cadence():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='single_1x1',
                      nepochs=1,
                      skybrightness=[1.],
                      delta=[-1.],
                      delta_min=[-1.],
                      delta_max=[-1.],
                      nexp=[1],
                      max_length=[1.])

    clist.add_cadence(name='single_2x1',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[-1., -1.],
                      delta_min=[-1., -1.],
                      delta_max=[-1., -1.],
                      nexp=[1, 1],
                      max_length=[1., 1.])

    clist.add_cadence(name='single_2x2',
                      nepochs=2,
                      skybrightness=[1., 1.],
                      delta=[-1., -1.],
                      delta_min=[-1., -1.],
                      delta_max=[-1., -1.],
                      nexp=[2, 2],
                      max_length=[1., 1.])

    assert len(clist.cadences) == 3
    assert clist.cadences['single_2x2'].nexp[1] == 2
    assert clist.cadences['single_2x1'].nexp[0] == 1
    assert clist.cadences['single_1x1'].nexp[0] == 1
    assert len(clist.cadences['single_2x1'].nexp) == 2
    assert len(clist.cadences['single_1x1'].delta_min) == 1
    assert len(clist.cadences['single_2x2'].delta_max) == 2
Beispiel #17
0
def test_epochs_consistency_4():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='bright_3x2',
                      nepochs=3,
                      skybrightness=[1., 1., 1.],
                      delta=[-1., -1., -1.],
                      delta_min=[-1., -1., -1.],
                      delta_max=[-1., -1., -1.],
                      nexp=[2, 2, 2],
                      max_length=[1., 1., 1.])

    clist.add_cadence(name='bright_3x1',
                      nepochs=3,
                      skybrightness=[1., 1., 1.],
                      delta=[-1., -1., -1.],
                      delta_min=[-1., -1., -1.],
                      delta_max=[-1., -1., -1.],
                      nexp=[1, 1, 1],
                      max_length=[1., 1., 1.])

    tcore = clist.cadences['bright_3x1'].as_cadencecore()
    assert clist.cadences['bright_3x2'].epochs_consistency(
        tcore, epochs=[0, 1, 2]) is True

    tcore = clist.cadences['bright_3x1'].as_cadencecore()
    assert clist.cadences['bright_3x2'].epochs_consistency(
        tcore, epochs=[0, 0, 2]) is True

    tcore = clist.cadences['bright_3x1'].as_cadencecore()
    assert clist.cadences['bright_3x2'].epochs_consistency(
        tcore, epochs=[0, 1, 1]) is True

    tcore = clist.cadences['bright_3x1'].as_cadencecore()
    assert clist.cadences['bright_3x2'].epochs_consistency(
        tcore, epochs=[0, 0, 0]) is False
Beispiel #18
0
def test_cadence_consistency_merge():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='dark_2x2',
                      nepochs=2,
                      skybrightness=[0.35, 0.35],
                      delta=[-1., -1.],
                      delta_min=[-1., -1.],
                      delta_max=[-1., -1.],
                      nexp=[2, 2],
                      max_length=[1.] * 2)

    clist.add_cadence(name='dark_2x4',
                      nepochs=2,
                      skybrightness=[0.35] * 6,
                      delta=[0., 26., 26., 26., 26., 26.],
                      delta_min=[0., 1., 1., 1., 1., 1.],
                      delta_max=[0., 3000., 3000., 3000., 3000., 3000.],
                      nexp=[4] * 2,
                      max_length=[1.] * 2)

    ok, epochs_list, nexps_list = clist.cadence_consistency('dark_2x2',
                                                            'dark_2x4',
                                                            merge_epochs=True)
    assert ok is True

    assert len(nexps_list[0]) == 1
    assert nexps_list[0][0] == 4

    assert len(nexps_list[1]) == 2
    assert nexps_list[1][0] == 2
    assert nexps_list[1][1] == 2

    assert len(nexps_list[2]) == 1
    assert nexps_list[2][0] == 4
Beispiel #19
0
def test_exposure_consistency():
    clist = cadence.CadenceList()
    clist.reset()

    clist.add_cadence(name='bright_3x2',
                      nepochs=3,
                      skybrightness=[1., 1., 1.],
                      delta=[-1., -1., -1.],
                      delta_min=[-1., -1., -1.],
                      delta_max=[-1., -1., -1.],
                      nexp=[2, 2, 2],
                      max_length=[1., 1., 1.])

    clist.add_cadence(name='bright_3x1',
                      nepochs=3,
                      skybrightness=[1., 1., 1.],
                      delta=[-1., -1., -1.],
                      delta_min=[-1., -1., -1.],
                      delta_max=[-1., -1., -1.],
                      nexp=[1, 1, 1],
                      max_length=[1., 1., 1.])

    assert clist.exposure_consistency('bright_3x1', 'bright_3x2',
                                      [0, 1, 2]) is True

    assert clist.exposure_consistency('bright_3x1', 'bright_3x2',
                                      [0, 0, 2]) is True

    assert clist.exposure_consistency('bright_3x1', 'bright_3x2',
                                      [0, 0, 0]) is False

    assert clist.exposure_consistency('bright_3x1', 'bright_3x2',
                                      [0, 2, 2]) is True

    assert clist.exposure_consistency('bright_3x1', 'bright_3x2',
                                      [2, 2, 2]) is False