示例#1
0
def test_complete_dap_response():

    expected_das = 'Attributes {\n'\
                   '    x {\n' \
                   '    }\n' \
                   '    y {\n' \
                   '    }\n'\
                   '    z {\n'\
                   '        String units "second";\n'\
                   '        Float64 size 4;\n'\
                   '    }\n'\
                   '}\n'

    expected_dds = 'Dataset {\n'\
                   '    Int16 x[x = 2];\n' \
                   '    Int16 y[y = 2];\n'\
                   '    Grid {\n'\
                   '      Array:\n'\
                   '        Int32 z[x = 2][y = 2];\n'\
                   '      Maps:\n' \
                   '        Int16 x[x = 2];\n' \
                   '        Int16 y[y = 2];\n'\
                   '    } z;\n'\
                   '} test;\n'

    expected_dods_data = b'\nData:\r\n\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x0b'

    dataset = dap.Dataset(name='test')
    x = dap.Array(name='x', data=np.array([0, 1]), dtype=dap.Int16)
    y = dap.Array(name='y', data=np.array([10, 11]), dtype=dap.Int16)

    z = dap.Grid(name='z',
                 data=np.array([[0, 0], [0, 0]]),
                 dtype=dap.Int32,
                 dimensions=[x, y])

    z_attr = [
        dap.Attribute(name='units', value='second', dtype=dap.String),
        dap.Attribute(name='size', value=4, dtype=dap.Float64),
    ]
    z.append(*z_attr)

    dataset.append(x, y, z)

    assert ''.join(dataset.das()) == expected_das
    assert ''.join(dataset.dds()) == expected_dds
    assert b''.join(
        dataset.dods()) == expected_dds.encode() + expected_dods_data

    assert x.parent == dataset
    assert y.parent == dataset
示例#2
0
def test_Dataset():

    dataset = dap.Dataset(name='data')
    assert dataset.name == 'data'
    assert dataset.parent is None
    assert dataset.indent == ''
    assert dataset.data_path == ''

    assert b'Data:' in b''.join(dataset.dods_data())

    ob1 = dap.DAPObject(name='Object 1')

    dataset.append(ob1)

    assert ob1.data_path == 'Object_1'
    assert ob1.indent == '    '
示例#3
0
def test_Attribute():

    dataset = dap.Dataset(name='test')

    attr1 = dap.Attribute(name='Attribute 1', value=3, dtype=dap.Float32)
    attr2 = dap.Attribute(name='Attribute 2',
                          value='a string',
                          dtype=dap.String)

    dataset.append(attr1, attr2)

    assert attr1.indent == '    '
    assert attr2.indent == '    '

    assert 'Float32' in ''.join(attr1.das())
    assert '"' in ''.join(attr2.das())

    assert 'Attribute' not in ''.join(dataset.dds())
    def dataset(self):
        dataset = dap.Dataset(name='test')

        x = dap.Array(name='x', data=np.array([0, 1]), dtype=dap.Int16)
        y = dap.Array(name='y', data=np.array([10, 11]), dtype=dap.Int16)

        p = dap.Grid(name='p',
                     data=np.array([[0, 0], [0, 0]]),
                     dtype=dap.Int32,
                     dimensions=[x, y])

        p_attr = [
            dap.Attribute(name='units', value='second', dtype=dap.String),
            dap.Attribute(name='size', value=4, dtype=dap.Float64),
        ]
        p.append(*p_attr)

        dataset.append(x, y, p)

        return dataset