String getDownloadURL(double lat, double lon) {
        int lonInt = getMinLonForTile(lon);
        int latInt = getMinLatForTile(lat);
        String north = getNorthString(latInt);
        String dir;
        if (north.equals("N")) {
            dir = "North/";
            if (lat >= 30)
                dir += "North_30_60/";
            else
                dir += "North_0_29/";
        } else {
            dir = "South/";
        }

        return dir + north + getPaddedLatString(latInt) + getEastString(lonInt) + getPaddedLonString(lonInt) + ".hgt";
    }
@Test
    public void testGetDownloadUrl() {
        // Created a couple of random tests and compared to https://topotools.cr.usgs.gov/gmted_viewer/viewer.htm
        assertEquals("North/North_30_60/N42E011.hgt", instance.getDownloadURL(42.940339, 11.953125));
        assertEquals("North/North_30_60/N38W078.hgt", instance.getDownloadURL(38.548165, -77.167969));
        assertEquals("North/North_0_29/N14W005.hgt", instance.getDownloadURL(14.116047, -4.277344));
        assertEquals("South/S52W058.hgt", instance.getDownloadURL(-51.015725, -57.621094));
        assertEquals("North/North_0_29/N24E120.hgt", instance.getDownloadURL(24.590108, 120.640625));
        assertEquals("South/S42W063.hgt", instance.getDownloadURL(-41.015725, -62.949219));
    }