def test_SS_generate_display_index(self):
        ss = sr.StimulusSeparator(monitor=self.monitor, indicator=self.indicator,
                                  coordinate='degree', background=0.,
                                  indicator_on_frame_num=4, indicator_off_frame_num=4,
                                  cycle_num=10, pregap_dur=0., postgap_dur=0.)

        frames_unique, index_to_display = ss._generate_display_index()
        assert (frames_unique == ((0, -1), (1, 1.), (1, -1.)))
        assert (len(index_to_display) == 80)
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.DisplayStimulus import DisplaySequence
from retinotopic_mapping.MonitorSetup import Monitor, Indicator

mon = Monitor(resolution=(1200, 1920), dis=15., mon_width_cm=52., mon_height_cm=32.)
ind = Indicator(mon)
uc = stim.UniformContrast(mon, ind, duration=10., color=-1.)
ss = stim.StimulusSeparator(mon, ind)
cs = stim.CombinedStimuli(mon, ind)
cs.set_stimuli([ss, uc, ss])
ds = DisplaySequence(log_dir='C:/data')
ds.set_stim(cs)
ds.trigger_display()
                       midgap_dur=si_midgap_dur, iteration=si_iteration,
                       is_blank_block=si_is_blank_block)
# =================================================================================

# ============================ wrape images =======================================
print ('wrapping images ...')
static_images_path = os.path.join(si_images_folder, 'wrapped_images_for_display.hdf5')
if os.path.isfile(static_images_path):
    os.remove(static_images_path)
si.wrap_images(si_images_folder)
# =================================================================================

# ======================= Stimulus Separator ======================================
ss = stim.StimulusSeparator(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                            postgap_dur=postgap_dur, coordinate=coordinate,
                            background=background,
                            indicator_on_frame_num=ss_indicator_on_frame_num,
                            indicator_off_frame_num=ss_indicator_off_frame_num,
                            cycle_num=ss_cycle_num)
# =================================================================================

# ======================= Combined Stimuli ========================================
cs = stim.CombinedStimuli(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                          postgap_dur=postgap_dur, coordinate=coordinate,
                          background=background)
# =================================================================================

# ======================= Set Stimuli Sequence ====================================
all_stim = [uc, fc, sl, sn, lsn, dgc, sgc, si, ss]
stim_seq = [all_stim[stim_ind] for stim_ind in cs_stim_ind_sequence]
cs.set_stimuli(stimuli=stim_seq, static_images_path=static_images_path)
# =================================================================================