def test3():
    """ASTRODATA-remove TEST 3: Fail when given index out of range"""
    ad1 = AstroData(sci123) 
    print "\n             >>>>>>>     AD       <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD remove   <<<<<<<<"
    ad1.remove(3)
    print("ad1.remove(3)")
def test13():
    """ASTRODATA-insert TEST 13: Fail when matching XNAM XVER found"""
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    ad1.info()
    adsci = ad4['SCI', 1]
    
    # Inserting sci 1 when sci 1 already exists
    ad1.insert(index=0, header=adsci.header, data=adsci.data)
def test13():
    """ASTRODATA-append TEST 13: Fail sci1 to sci123 """
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD HOST    <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    adsci = ad4['SCI', 1]
    print("adsci = ad4['SCI', 1]")
    ad1.append(header=adsci.header, data=adsci.data)
def test2():
    """ASTRODATA-remove TEST 2: Use 'XNAM', XVER"""
    ad1 = AstroData(sci123) 
    print "\n             >>>>>>>     AD       <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD remove   <<<<<<<<"
    ad1.remove(("SCI",1))
    print("ad1.remove(('SCI',1))")
    print "\n             >>>>>>>  AD  MODIFIED   <<<<<<<<"
    ad1.info()
    eq_(ad1[0].extname(), "SCI")
    eq_(ad1[0].extver(), 2)
    eq_(ad1[1].extname(), "SCI")
def test1():
    """ASTRODATA-remove TEST 1: Use index"""
    ad1 = AstroData(sci123) 
    print "\n             >>>>>>>     AD       <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD remove   <<<<<<<<"
    ad1.remove(1)
    print("ad1.remove(1)")
    print "\n             >>>>>>>  AD MODIFIED   <<<<<<<<"
    ad1.info()
    eq_(ad1[0].extname(), "SCI")
    eq_(ad1[0].extver(), 2)
    eq_(ad1[1].extname(), "SCI")
    eq_(ad1[1].extver(), 3)
def test7():
    """ASTRODATA-append TEST 7: AUTO NUMBER, sci1 to sci123"""
    ad1 = AstroData(sci123)
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD HOST    <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    adsci = ad4['SCI', 1]
    print("adsci = ad4['SCI', 1]")
    ad1.append(header=adsci.header, data=adsci.data, auto_number=True)
    print "ad1.append(header=adsci.header, data=adsci.data, auto_number=True)"
    print "\n             >>>>>>>  AD HOST (NEW) <<<<<<<<"
    ad1.info()
    eq_(ad1[3].hdulist[1].name, "SCI")
    eq_(ad1[3].extver(), 4)
def test8():
    """ASTRODATA-append TEST 8: AUTO NUMBER, var2 to sci123"""
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD HOST    <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    adsci = ad4['VAR', 2]
    print("adsci = ad4['VAR', 2]")
    ad1.append(header=adsci.header, data=adsci.data, auto_number=True)
    print "ad1.append(header=adsci.header, data=adsci.data, auto_number=True)"
    print "\n             >>>>>>>  AD HOST (NEW) <<<<<<<<"
    ad1.info()
    eq_(ad1[3].extname(), "VAR")
    eq_(ad1[3].extver(), 4)
def test17():
    """ASTRODATA-insert TEST 17: AUTO NUMBER, MDF into MEF
    """
    ad3 = AstroData(mdfscivardq1) 
    ad1 = AstroData(sci123) 
    print "\n             >>>>>>>     AD     <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    ad1.insert(index=0, header=ad3[0].header, data=ad3[0].data) 
    mystr = "ad1.insert(index=0, header=ad3[1].header, data=ad3[1].data,"
    mystr += " auto_number=True)" 
    print mystr
    print "\n             >>>>>>>  AD (MODIFIED) <<<<<<<<"
    ad1.info()
    eq_(ad1[0].extname(), "MDF")
    eq_(ad1[0].extver(), None)
def test8():
    """ASTRODATA-insert TEST 8: Increment XVER if XNAME unknown
    """
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD     <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    adsci = ad4['VAR', 2]
    print("adsci = ad4['VAR', 2]")
    ad1.insert(index=0, header=adsci.header, data=adsci.data, auto_number=True)
    print "ad1.insert(index=0,header=adsci.header, data=adsci.data, auto_number=True)"
    print "\n             >>>>>>>  AD MODIFIED <<<<<<<<"
    ad1.info()
    eq_(ad1[0].extname(), "VAR")
    eq_(ad1[0].extver(), 4)
def test9():
    """ASTRODATA-append TEST 9: AUTO NUMBER, var3 to sci12"""
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD HOST    <<<<<<<<"
    ad1.hdulist.__delitem__(3)
    print("ad1.hdulist.__delitem__(3)")
    ad1.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    adsci = ad4['VAR', 3]
    print("adsci = ad4['VAR', 3]")
    print "ad1.append(header=adsci.header, data=adsci.data, auto_number=True)"
    ad1.append(header=adsci.header, data=adsci.data, auto_number=True)
    print "\n             >>>>>>>  AD HOST (NEW) <<<<<<<<"
    ad1.info()
    eq_(ad1[2].extname(), "VAR")
    eq_(ad1[2].extver(), 3)
def test16():
    """ASTRODATA-insert TEST 16: AUTO NUMBER, MDF to empty AD
    """
    ad3 = AstroData(mdfscivardq1) 
    print "\n             >>>>>>>     AD     <<<<<<<<"
    ad_new = AstroData(phu=ad3.phu)
    ad_new.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    ad_new.insert(index=0, header=ad3[0].header, data=ad3[0].data,\
        auto_number=True) 
    mystr = "ad_new.insert(index=0, header=ad4[1].header, data=ad4[1].data,"
    mystr += " auto_number=True)" 
    print mystr
    print "\n             >>>>>>>  AD MODIFIED <<<<<<<<"
    ad_new.info()
    eq_(ad_new[0].extname(), "MDF")
    eq_(ad_new[0].extver(), None)
def test16():
    """ASTRODATA-append TEST 16: AUTO NUMBER MDF
    """
    ad3 = AstroData(mdfscivardq1) 
    print "\n             >>>>>>>     AD NEW    <<<<<<<<"
    ad_new = AstroData(phu=ad3.phu)
    ad_new.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    ad_new.append(header=ad3[0].header, data=ad3[0].data,\
        auto_number=True) 
    mystr = "ad_new.append(header=ad4[1].header, data=ad4[1].data,"
    mystr += " auto_number=True)" 
    print mystr
    print "\n             >>>>>>>  AD NEW <<<<<<<<"
    ad_new.info()
    eq_(ad_new[0].extname(), "MDF")
    eq_(ad_new[0].extver(), None)
def test7():
    """
    ASTRODATA-insert TEST 7: AUTO NUMBER, Incremnt XVER & latter indx if XNAME exists
    """
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD    <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    adsci = ad4['SCI', 1]
    print("adsci = ad4['SCI', 1]")
    ad1.insert(index=1, header=adsci.header, data=adsci.data, auto_number=True)
    print "ad1.insert(index=1, header=adsci.header, data=adsci.data, auto_number=True)"
    print "\n             >>>>>>>  MODIFIED AD   <<<<<<<<"
    ad1.info()
    eq_(ad1[1].hdulist[1].name, "SCI")
    eq_(ad1[1].extver(), 4)
def test11():
    """
    ASTRODATA-insert TEST 11: AUTO NUMBER, XVER param allows duplicate XNAM XVER pairs  
    """
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD     <<<<<<<<"
    ad1.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    adsci = ad4['SCI', 1]
    print("adsci = ad4['SCI', 1]")
    ad1.insert(index=1, extver=2, header=adsci.header, data=adsci.data, \
        auto_number=True)
    print("ad1.insert(index=1, extver=2, header=adsci.header, \
        data=adsci.data, auto_number=True)")
    print "\n             >>>>>>>  AD MODIFIED <<<<<<<<"
    ad1.info()
    eq_(ad1[1].extname(), "SCI")
    eq_(ad1[1].extver(), 2)
def test9():
    """ASTRODATA-insert TEST 9: AUTO NUMBER, XVER param inserts high XVER """
    ad1 = AstroData(sci123) 
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD    <<<<<<<<"
    ad1.hdulist.__delitem__(3)
    print("ad1.hdulist.__delitem__(3)")
    ad1.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    adsci = ad4['VAR', 3]
    print("adsci = ad4['VAR', 3]")
    print("ad1.insert(index=2, header=adsci.header, data=adsci.data,"
        "auto_number=True)")
    ad1.insert(index=2, header=adsci.header, data=adsci.data, \
        auto_number=True, extver=5)
    print "\n             >>>>>>>  AD MODIFIED <<<<<<<<"
    ad1.info()
    eq_(ad1[2].extname(), "VAR")
    eq_(ad1[2].extver(), 5)
def test14():
    """ASTRODATA-append TEST 14: AUTO NUMBER, given phu, construct sci123"""
    ad1 = AstroData(sci123) 
    print "\n             >>>>>>>     AD NEW    <<<<<<<<"
    ad_new = AstroData(phu=ad1.phu)
    ad_new.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    for i in range(1,4):
        adsci = ad1['SCI', i]
        print("adsci = ad1['SCI', %d]" % i)
        ad_new.append(header=adsci.header, data=adsci.data, auto_number=True)
        mystr = "ad_new.append(header=adsci.header, data=adsci.data,"
        mystr += " auto_number=True)"
        print mystr
    print "\n             >>>>>>>  AD NEW <<<<<<<<"
    ad_new.info()
    eq_(ad_new[0].extname(), "SCI")
    eq_(ad_new[0].extver(), 1)
    eq_(ad_new[1].extname(), "SCI")
    eq_(ad_new[1].extver(), 2)
    eq_(ad_new[2].extname(), "SCI")
    eq_(ad_new[2].extver(), 3)
def test15():
    """ASTRODATA-insert TEST 15: Build AD from scratch
    """
    ad3 = AstroData(mdfscivardq1) 
    print "\n             >>>>>>>     AD HOST    <<<<<<<<"
    ad_new = AstroData()
    ad_new.info()
    print "\n             >>>>>>>    AD insert   <<<<<<<<"
    ad_new.insert(index=0, moredata=ad3)
    ad3.info()
    print("ad_new.insert(index=0, moredata=ad3, auto_number=True)")
    print "\n             >>>>>>>  AD HOST (NEW) <<<<<<<<"
    ad_new.info()
    eq_(ad_new[3].extname(), "MDF")
    eq_(ad_new[2].extname(), "SCI")
    eq_(ad_new[1].extname(), "VAR")
    eq_(ad_new[0].extname(), "DQ")
    eq_(ad_new[2].extver(), 1)
    eq_(ad_new[1].extver(), 1)
    eq_(ad_new[0].extver(), 1)
def test15():
    """ASTRODATA-append TEST 15: AUTO NUMBER, extver param override (dq2-dq1)
    """
    ad4 = AstroData(scivardq123) 
    print "\n             >>>>>>>     AD NEW    <<<<<<<<"
    ad_new = AstroData(phu=ad4.phu)
    ad_new.info()
    print "\n             >>>>>>>    AD APPEND   <<<<<<<<"
    print ad4.info()
    ad_new.append(header=ad4[1].header, data=ad4[1].data,  extver=1, \
        auto_number=True) 
    ad_new.append(header=ad4[4].header, data=ad4[4].data,  extver=1, \
        auto_number=True) 
    mystr = "ad_new.append(header=ad4[1].header, data=ad4[1].data,  extver=1,"
    mystr += " auto_number=True)" 
    mystr += "\nad_new.append(header=ad4[4].header, data=ad4[4].data,  extver=1,"
    mystr += " auto_number=True)"
    print mystr
    print "\n             >>>>>>>  AD NEW <<<<<<<<"
    ad_new.info()
    eq_(ad_new[0].extname(), "SCI")
    eq_(ad_new[0].extver(), 1)
    eq_(ad_new[1].extname(), "DQ")
    eq_(ad_new[1].extver(), 1)