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
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 == ' '
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