text: import sys, os
  file_dir = os.path.dirname(os.path.abspath(__file__))
  sys.path.insert(0, file_dir + '/../mednickdb_pysleep')
  from scorefiles import extract_epochstages_from_scorefile, score_wake_as_waso_wbso_wase
  from sleep_architecture import lights_on_off_and_sleep_latency
  import yaml
  from datetime import datetime
  
  
  def test_extract_epochstages_from_scorefile():
  
      stagemap = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/MednickHumeType_study_settings.yaml"),
               'rb'))['stage_map']
  
      testfile1 = os.path.join(file_dir, 'testfiles/example3_scorefile.mat')
      epochstages, epochoffset, starttime = extract_epochstages_from_scorefile(testfile1, stagemap)
  
      correct_epochstages = ['unknown', 'unknown', 'unknown', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake']
      assert epochstages == correct_epochstages
  
      epochstages = score_wake_as_waso_wbso_wase(epochstages)
      correct_epochstages = ['unknown', 'unknown', 'unknown', 'wbso', 'wbso', 'wbso', 'wbso', 'wbso', 'wbso', 'wbso']
      assert epochstages == correct_epochstages
  
      testfile2 = os.path.join(file_dir, 'testfiles/example4_scorefile.mat')
      epochstages, epochoffset, starttime = extract_epochstages_from_scorefile(testfile2, stagemap)
      correct_epochstages = ['wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n3', 'n3', 'n2', 'n2']
      assert epochstages == correct_epochstages
  
      epochstages = score_wake_as_waso_wbso_wase(epochstages)
      correct_epochstages = ['wbso', 'wbso', 'n1', 'n1', 'n2', 'n2', 'n3', 'n3', 'n2', 'n2']
      assert epochstages == correct_epochstages
  
  
  def test_choc_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/choc_type_study_settings.yaml"),
               'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(
          os.path.join(os.path.dirname(__file__), "testfiles/example_choc_scorefile.csv"),
          study_settings_file['stage_map'])
  
      assert epoch_stages[:300] == ['unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake']
      assert epoch_offset == 0
      assert start_time is None
  
  
  def test_hume1_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/MednickHumeType_study_settings.yaml"),
               'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(
          os.path.join(os.path.dirname(__file__), "testfiles/humetype1_scorefile.mat"),
          study_settings_file['stage_map'])
  
      assert epoch_stages == ['wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n3', 'n3', 'n2', 'n2']
      assert epoch_offset == 102.0
      assert start_time == datetime.strptime('2016-01-01 00:00:00', "%Y-%m-%d %H:%M:%S")
  
  
  def test_pkl_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/MednickHumeType_study_settings.yaml"),
               'rb')) #this is actually not needed...
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(
          os.path.join(os.path.dirname(__file__), "testfiles/pkl_type_scorefile.pkl"),
          study_settings_file['stage_map'])
  
      epochs300 = ['unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n2', 'n1', 'n1', 'n1', 'n1', 'wake', 'n1', 'n2', 'n2', 'n2', 'n3', 'n3', 'n2', 'n3', 'n2', 'n2', 'n3', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n2', 'n1', 'n1', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n2', 'n3', 'n3', 'wake', 'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'wake', 'n1', 'n1', 'wake', 'n2', 'n2', 'wake', 'wake', 'wake', 'n1', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n2', 'n1', 'n3', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n2', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'rem', 'n2', 'rem', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'rem', 'n2', 'n1', 'rem', 'rem', 'n1', 'n2', 'n2', 'wake', 'n2', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n1', 'n1']
  
      assert epochs300 == epoch_stages[0:300]
      assert epoch_offset == 1.88412058372
      assert start_time == datetime.strptime('2000-01-01 23:15:24', "%Y-%m-%d %H:%M:%S")
  
  
  def test_hume2_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/MednickHumeType_study_settings.yaml"),
               'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(
          os.path.join(os.path.dirname(__file__), "testfiles/humetype2_scorefile.mat"),
          study_settings_file['stage_map'])
  
      assert epoch_stages == ['unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'wake', 'wake', 'n1', 'n1', 'n1',
                              'n1', 'n1', 'n1', 'n1', 'n2', 'wake', 'n1', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2',
                              'n2', 'n3', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3',
                              'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'wake',
                              'wake', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'rem', 'n2', 'n2', 'wake', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'wake', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'rem', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n2', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n2', 'n3', 'n3', 'n2', 'n3', 'n2', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n3', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake',
                              'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n2', 'n3', 'n3', 'n2', 'n2', 'n3', 'n2', 'n2', 'wake',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'wake', 'n1', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'wake', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown']
      assert start_time is None
      assert epoch_offset == 0
  
  
  def test_grass_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/MednickGrassType_study_settings.yaml"),
               'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/grasstype_scorefile.xls"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'n1', 'wake', 'n1', 'n1', 'n1', 'n2', 'n2', 'wake', 'n1', 'wake', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'n1', 'n1', 'wake', 'n1', 'wake', 'n1', 'wake', 'n1', 'n2', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'n1', 'n1', 'n2', 'wake', 'n1', 'n2', 'wake', 'n1', 'n2', 'rem', 'rem', 'wake', 'n1', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake',
                              'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown']
      assert start_time == datetime.strptime('2013-02-18 12:58:59', "%Y-%m-%d %H:%M:%S")
      assert epoch_offset == 0
  
  
  def test_lat_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/SpencerLab_study_settings.yaml"), 'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/lattype_scorefile.txt"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['unknown', 'unknown', 'unknown', 'unknown', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'n1', 'wake', 'wake', 'n1', 'wake', 'n1', 'n1', 'wake', 'n1', 'n1', 'n2', 'n2',
                              'n1', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake', 'n1', 'wake',
                              'n1', 'n2', 'n2', 'wake', 'n2', 'n2', 'n1', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'rem', 'n1', 'n2', 'n2', 'rem', 'rem', 'n2', 'n2', 'n2', 'n1', 'n2',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'n1', 'n1', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem',
                              'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'wake', 'wake', 'n1',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake',
                              'wake']
      assert start_time is None
      assert epoch_offset == 0
  
  
  def test_basic_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/DinklemannLab_study_settings.yaml"),
               'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/basictype_scorefile.txt"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'n1', 'n1', 'n1', 'n1', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1',
                              'wake', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'wake', 'n1', 'wake', 'n1',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n3',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'wake',
                              'n1', 'wake', 'wake', 'n1', 'wake', 'n1', 'wake', 'wake', 'n1', 'n1', 'wake', 'n1', 'wake',
                              'wake', 'wake', 'n1', 'n1', 'wake', 'n1', 'n2', 'n2', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n3', 'n2',
                              'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3',
                              'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'n1', 'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'movement',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n2', 'n2', 'n2',
                              'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2',
                              'wake', 'n1', 'n2', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n1', 'n1', 'n1', 'n2', 'wake', 'wake', 'wake', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'movement', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n2', 'n3', 'n3', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3',
                              'n2', 'n2', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'movement',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'movement', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n3', 'n2', 'n2', 'n3', 'n2', 'n3', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'movement', 'n1', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'movement', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake']
      assert start_time is None
      assert epoch_offset == 0
  
  
  def test_full_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/CAPStudy_study_settings.yaml"), 'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/fulltype_scorefile.txt"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'n1', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'wake', 'n1',
                              'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'unknown', 'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1',
                              'n1', 'n1', 'n2', 'n2', 'wake', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'unknown', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'wake', 'wake', 'n1', 'n2', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake', 'n1',
                              'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'unknown', 'n2', 'n2',
                              'n2', 'n2', 'unknown', 'unknown', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n1', 'n1',
                              'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1',
                              'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n2', 'n2', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'unknown', 'n1', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake']
      assert start_time == datetime(2010, 1, 28, 22, 18, 17)
      assert epoch_offset == 0
  
  
  def test_XML_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/NSRR_study_settings.yaml"), 'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/xmltype_scorefile.xml"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'n1', 'n2', 'n2', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem',
                              'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'wake', 'wake', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'wake', 'n3', 'n3', 'n3', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n2', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'n1', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'n1', 'wake', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'rem',
                              'rem', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'n1', 'n1', 'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1',
                              'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'wake', 'wake', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'rem',
                              'rem', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2']
      assert start_time == datetime(2000, 1, 1, 20, 33, 32)
      assert epoch_offset == 0
  
  
  def test_edf1_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/WamsleyLab_study_settings.yaml"), 'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/edftype1_scorefile.edf"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'n1', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1',
                              'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake', 'wake',
                              'n3', 'n3', 'n2', 'n3', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake', 'n1', 'n2',
                              'n2', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'wake', 'n2', 'n2', 'n2', 'n2', 'wake', 'n2', 'n2', 'n2', 'n1', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1',
                              'n1', 'n1', 'n1', 'n1', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'wake', 'wake', 'wake',
                              'n1', 'wake', 'wake', 'n1', 'n1', 'n1', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake',
                              'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'wake',
                              'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'wake', 'n2', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'n1', 'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2']
      assert start_time == datetime.strptime('2014-07-08 23:05:09', "%Y-%m-%d %H:%M:%S")
      assert epoch_offset == 0
  
  
  def test_edf2_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/Kemp_study_settings.yaml"), 'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/edftype2_scorefile.edf"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'wake', 'n3', 'n3', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n2', 'n3',
                              'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n1', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2',
                              'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1',
                              'n1', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n1',
                              'n1', 'n1', 'n1', 'n2', 'n2', 'n2', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n1', 'n2', 'n2', 'n1', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n2', 'n2', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'n2', 'n1', 'n1', 'wake', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n2', 'n1',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n2', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n2', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'n1', 'n1',
                              'n1', 'n1', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'wake', 'n1', 'n1', 'n1',
                              'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'wake', 'n1', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n2', 'n2', 'n3',
                              'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n2', 'n2', 'n2', 'n2', 'n1', 'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake',
                              'n1', 'n1', 'n1', 'n1', 'n1', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'n1', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'n1', 'n1', 'n1', 'n1', 'n1', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake']
      assert start_time == datetime.strptime('1989-04-24 16:13:00', "%Y-%m-%d %H:%M:%S")
      assert epoch_offset == 0
  
  
  def test_edf3_scorefile():
      study_settings_file = yaml.safe_load(
          open(os.path.join(os.path.dirname(__file__), "testfiles/study_settings/MASS_study_settings.yaml"), 'rb'))
      epoch_stages, epoch_offset, start_time = extract_epochstages_from_scorefile(os.path.join(os.path.dirname(__file__),
                                                                                               "testfiles/edftype3_scorefile.edf"),
                                                                                  study_settings_file['stage_map'])
  
      assert epoch_stages == ['unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'unknown',
                              'unknown', 'unknown', 'unknown', 'unknown', 'unknown', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake', 'wake',
                              'wake', 'n1', 'n1', 'wake', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3',
                              'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'wake', 'rem', 'rem', 'n1', 'rem', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'wake', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2',
                              'n2', 'n3', 'n2', 'n2', 'n3', 'n3', 'n2', 'n3', 'n3', 'n2', 'n3', 'n3', 'n3', 'n3', 'n2',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3',
                              'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n3', 'n2', 'n2', 'wake', 'wake', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n3', 'n2', 'n2', 'n2',
                              'n3', 'n2', 'n3', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'wake', 'n1', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n3', 'n3', 'n2', 'n2', 'n3', 'n2', 'n3', 'n3', 'n2', 'n2', 'n3', 'n2', 'n2', 'n3', 'n3',
                              'n3', 'n3', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'n1', 'n1', 'n1', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'n1', 'n2', 'rem', 'rem',
                              'rem', 'rem', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'wake', 'wake', 'n1', 'n1', 'wake', 'wake', 'n1', 'n1', 'n1', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n1', 'n1', 'n2', 'n2', 'n2', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'wake', 'n1', 'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'n1', 'n2', 'n2', 'n2',
                              'n2', 'n2', 'n2', 'n2', 'n2', 'n2', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem', 'rem',
                              'rem', 'rem', 'unknown', 'unknown', 'unknown']
      assert start_time == datetime.strptime('2000-01-01 01:33:55', "%Y-%m-%d %H:%M:%S")
      assert epoch_offset == 15.2460797491
  