def test_gdal_calculations_py_17():
    try:
        from gdal_calculations import NewDataset, ArrayDataset, Dataset, Env
        Env.tempdir='/vsimem'

        #Regular raster
        f='data/tgc_geo.tif'
        dsf=Dataset(f)
        dat=dsf.ReadAsArray()

        dsn=NewDataset('/vsimem/test.tif',prototype_ds=dsf)
        dsn.write_data(dat)
        ok=(dsn.ReadAsArray())==(dsf.ReadAsArray())
        assert ok.all(), "dsn.ReadAsArray()!=dsf.ReadAsArray()"
        assert dsn.RasterXSize==dsf.RasterXSize, "dsn.RasterXSize!=dsf.RasterXSize"
        assert dsn.RasterYSize==dsf.RasterYSize, "dsn.RasterYSize!=dsf.RasterYSize"
        assert dsn.GetGeoTransform()==dsf.GetGeoTransform(), "dsn.GetGeoTransform()!=dsf.GetGeoTransform()"
        assert dsn.GetProjection()==dsf.GetProjection(), "dsn.GetProjection()!=dsf.GetProjection()"

        dsa=ArrayDataset(dat,prototype_ds=dsf)
        ok=(dsa.ReadAsArray())==(dsf.ReadAsArray())
        assert ok.all(), "dsa.ReadAsArray()!=dsf.ReadAsArray()"
        assert dsa.RasterXSize==dsf.RasterXSize, "dsa.RasterXSize!=dsf.RasterXSize"
        assert dsa.RasterYSize==dsf.RasterYSize, "dsa.RasterYSize!=dsf.RasterYSize"
        assert dsa.GetGeoTransform()==dsf.GetGeoTransform(), "dsa.GetGeoTransform()!=dsf.GetGeoTransform()"
        assert dsa.GetProjection()==dsf.GetProjection(), "dsa.GetProjection()!=dsf.GetProjection()"

        return 'success'
    except AssertionError:
        return fail()
    finally:
        cleanup()