Ejemplo n.º 1
0
def test_geoinfo_polygons_bad_order(good_xml):
    root = copy_xml(good_xml['with_ns'])
    root.append(
        make_elem(
            'GeoInfo',
            namespace=good_xml['nsmap']['ns'],
            children=[
                make_elem(
                    'Polygon',
                    size='3',
                    namespace=good_xml['nsmap']['ns'],
                    children=[
                        make_elem(
                            'Vertex',
                            index='1',
                            namespace=good_xml['nsmap']['ns'],
                            children=[
                                make_elem('Lat',
                                          0.0,
                                          namespace=good_xml['nsmap']['ns']),
                                make_elem('Lon',
                                          0.0,
                                          namespace=good_xml['nsmap']['ns']),
                            ]),
                        make_elem(
                            'Vertex',
                            index='2',
                            namespace=good_xml['nsmap']['ns'],
                            children=[
                                make_elem('Lat',
                                          0.0,
                                          namespace=good_xml['nsmap']['ns']),
                                make_elem('Lon',
                                          1.0,
                                          namespace=good_xml['nsmap']['ns']),
                            ]),
                        make_elem(
                            'Vertex',
                            index='3',
                            namespace=good_xml['nsmap']['ns'],
                            children=[
                                make_elem('Lat',
                                          1.0,
                                          namespace=good_xml['nsmap']['ns']),
                                make_elem('Lon',
                                          1.0,
                                          namespace=good_xml['nsmap']['ns']),
                            ]),
                    ])
            ]))

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    cphd_con.check('check_geoinfo_polygons')
    assert cphd_con.failures()
Ejemplo n.º 2
0
def test_signalnormal_bad_pvp(xml_with_signal_normal):
    pvps, root, nsmap = xml_with_signal_normal

    for idx, pvp in enumerate(pvps.values()):
        pvp['SIGNAL'][idx] = 0
    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=pvps,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    tocheck = [
        'check_channel_signalnormal_{}'.format(key) for key in pvps.keys()
    ]
    cphd_con.check(tocheck)
    assert len(cphd_con.failures()) == len(pvps)

    for norm_node in root.findall('./ns:Channel/ns:Parameters/ns:SignalNormal',
                                  namespaces=nsmap):
        norm_node.text = 'false'
    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=pvps,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check(tocheck)
    assert not cphd_con.failures()

    no_sig_pvp = {
        name: np.zeros(pvp.shape, dtype=[('notsignal', 'i8')])
        for name, pvp in pvps.items()
    }
    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=no_sig_pvp,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check(tocheck)
    assert cphd_con.failures()
Ejemplo n.º 3
0
def test_check_classification_and_release_info_error(good_xml, good_header):
    bad_xml = copy_xml(good_xml['without_ns'])

    bad_xml.find('./CollectionID/ReleaseInfo').text += '-make-bad'
    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=good_header,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_classification_and_release_info')
    assert cphd_con.failures()
Ejemplo n.º 4
0
def test_check_unconnected_ids_severed_node(good_xml):
    bad_xml = copy_xml(good_xml['without_ns'])

    bad_xml.find('./Dwell/CODTime/Identifier').text += '-make-bad'
    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=good_header,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_unconnected_ids')
    assert cphd_con.failures()
Ejemplo n.º 5
0
def test_txrcv(xml_with_txrcv):
    chan_ids, root, nsmap = xml_with_txrcv

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = ['check_channel_txrcv_exist_{}'.format(key) for key in chan_ids]
    cphd_con.check(tocheck)
    assert not cphd_con.failures()
Ejemplo n.º 6
0
def test_antenna_bad_antpats_count(good_xml):
    root = copy_xml(good_xml['with_ns'])
    antenna_node = root.find('./ns:Antenna', namespaces=good_xml['nsmap'])
    antenna_node.xpath('./ns:NumAntPats',
                       namespaces=good_xml['nsmap'])[-1].text += '2'
    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_antenna')
    assert cphd_con.failures()
Ejemplo n.º 7
0
def test_antenna_non_matching_acfids(good_xml):
    root = copy_xml(good_xml['with_ns'])
    antenna_node = root.find('./ns:Antenna', namespaces=good_xml['nsmap'])
    antenna_node.xpath('./ns:AntPhaseCenter/ns:ACFId',
                       namespaces=good_xml['nsmap'])[-1].text += '_wrong'
    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_antenna')
    assert cphd_con.failures()
Ejemplo n.º 8
0
def test_fxbwnoise(xml_with_fxbwnoise):
    pvps, root, nsmap = xml_with_fxbwnoise

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=pvps,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = ['check_channel_fxbwnoise_{}'.format(key) for key in pvps.keys()]
    cphd_con.check(tocheck)
    assert not cphd_con.failures()
Ejemplo n.º 9
0
def test_xml_schema_error(good_xml):
    bad_xml = copy_xml(good_xml['with_ns'])

    remove_nodes(*bad_xml.xpath('./ns:Global/ns:DomainType',
                                namespaces=good_xml['nsmap']))
    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_against_schema')
    assert cphd_con.failures()
Ejemplo n.º 10
0
def test_antenna_missing_channel_node(good_xml_with_antenna):
    bad_xml = copy_xml(good_xml_with_antenna)
    remove_nodes(*bad_xml.findall('./Channel/Parameters/Antenna'))

    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    cphd_con.check('check_antenna_ids_in_channel')
    assert cphd_con.failures()
Ejemplo n.º 11
0
def test_channel_srpfixed(xml_without_srpfixed):
    pvps, root, nsmap = xml_without_srpfixed

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=pvps,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = ['check_channel_srpfixed_{}'.format(key) for key in pvps.keys()]
    tocheck.append('check_file_srpfixed')
    cphd_con.check(tocheck)
    assert not cphd_con.failures()
Ejemplo n.º 12
0
def test_extended_imagearea_polygon_bad_extent(xml_with_extendedarea):
    root, nsmap = xml_with_extendedarea
    root.find('./ns:SceneCoordinates/ns:ExtendedArea/ns:X2Y2/ns:X',
              namespaces=nsmap).text = '2000'

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    cphd_con.check('check_extended_imagearea_polygon')
    assert cphd_con.failures()
Ejemplo n.º 13
0
def test_fxbwnoise_bad_domain(xml_with_fxbwnoise):
    pvps, root, nsmap = xml_with_fxbwnoise

    root.find('./ns:Global/ns:DomainType', namespaces=nsmap).text = 'TOA'

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=pvps,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = ['check_channel_fxbwnoise_{}'.format(key) for key in pvps.keys()]
    cphd_con.check(tocheck)
    assert cphd_con.failures()
Ejemplo n.º 14
0
def test_polygon_size_error(good_xml):
    bad_xml = copy_xml(good_xml['with_ns'])
    ia_polygon_node = bad_xml.find(
        './ns:SceneCoordinates/ns:ImageArea/ns:Polygon',
        namespaces=good_xml['nsmap'])
    ia_polygon_node.attrib['size'] = "12345678890"

    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_global_imagearea_polygon')
    assert cphd_con.failures()
Ejemplo n.º 15
0
def test_extended_imagearea(xml_with_extendedarea):
    root, nsmap = xml_with_extendedarea

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    cphd_con.check([
        'check_extended_imagearea_polygon',
        'check_extended_imagearea_x1y1_x2y2'
    ])
    assert not cphd_con.failures()
Ejemplo n.º 16
0
def test_fxbwnoise_bad_value(xml_with_fxbwnoise):
    pvps, root, nsmap = xml_with_fxbwnoise

    chan_id = list(pvps.keys())[-1]
    pvps[chan_id]['FXN1'][0] = 0.5

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=pvps,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = ['check_channel_fxbwnoise_{}'.format(key) for key in pvps.keys()]
    cphd_con.check(tocheck)
    assert cphd_con.failures()
Ejemplo n.º 17
0
def test_check_unconnected_ids_extra_node(good_xml):
    bad_xml = copy_xml(good_xml['without_ns'])

    first_acf = bad_xml.find('./Antenna/AntCoordFrame')
    extra_acf = copy.deepcopy(first_acf)
    extra_acf.find('./Identifier').text += '_superfluous'
    first_acf.getparent().append(extra_acf)

    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=good_header,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_unconnected_ids')
    assert cphd_con.failures()
Ejemplo n.º 18
0
def test_channel_image_area(xml_with_channel_imagearea):
    root, nsmap = xml_with_channel_imagearea

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = []
    for chan_id in root.findall('./ns:Data/ns:Channel/ns:Identifier',
                                namespaces=nsmap):
        tocheck.append('check_channel_imagearea_x1y1_{}'.format(chan_id.text))
        tocheck.append('check_channel_imagearea_polygon_{}'.format(
            chan_id.text))
    cphd_con.check(tocheck)
    assert not cphd_con.failures()
Ejemplo n.º 19
0
def test_txrcv_missing_channel_node(xml_with_txrcv):
    chan_ids, root, nsmap = xml_with_txrcv

    chan_param_node = root.xpath(
        './ns:Channel/ns:Parameters/ns:Identifier[text()="{}"]/..'.format(
            chan_ids[0]),
        namespaces=nsmap)[0]
    remove_nodes(*chan_param_node.findall('./ns:TxRcv', nsmap))

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    cphd_con.check('check_txrcv_ids_in_channel')
    assert cphd_con.failures()
Ejemplo n.º 20
0
def test_error_in_check(good_xml):
    bad_xml = copy_xml(good_xml['with_ns'])
    remove_nodes(
        *bad_xml.xpath('./ns:Channel/ns:Parameters/ns:DwellTimes/ns:CODId',
                       namespaces=good_xml['nsmap']))

    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    tocheck = []
    for chan_id in bad_xml.findall('./ns:Data/ns:Channel/ns:Identifier',
                                   namespaces=good_xml['nsmap']):
        tocheck.append('check_channel_dwell_exist_{}'.format(chan_id.text))
    cphd_con.check(tocheck)
    assert cphd_con.failures()
Ejemplo n.º 21
0
def test_polygon_winding_error(good_xml):
    bad_xml = copy_xml(good_xml['with_ns'])
    ia_polygon_node = bad_xml.find(
        './ns:SceneCoordinates/ns:ImageArea/ns:Polygon',
        namespaces=good_xml['nsmap'])
    size = int(ia_polygon_node.attrib['size'])
    # Reverse the order of the vertices
    for vertex in ia_polygon_node:
        vertex.attrib['index'] = str(size - int(vertex.attrib['index']) + 1)

    cphd_con = cphd_consistency.CphdConsistency(bad_xml,
                                                pvps={},
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)
    cphd_con.check('check_global_imagearea_polygon')
    assert cphd_con.failures()
Ejemplo n.º 22
0
def test_txrcv_bad_rcvid(xml_with_txrcv):
    chan_ids, root, nsmap = xml_with_txrcv

    chan_param_node = root.xpath(
        './ns:Channel/ns:Parameters/ns:Identifier[text()="{}"]/..'.format(
            chan_ids[0]),
        namespaces=nsmap)[0]
    chan_param_node.xpath('./ns:TxRcv/ns:RcvId',
                          namespaces=nsmap)[-1].text = 'missing'

    cphd_con = cphd_consistency.CphdConsistency(root,
                                                pvps=None,
                                                header=None,
                                                filename=None,
                                                schema=DEFAULT_SCHEMA,
                                                check_signal_data=False)

    tocheck = ['check_channel_txrcv_exist_{}'.format(key) for key in chan_ids]
    cphd_con.check(tocheck)
    assert cphd_con.failures()