public <T extends BaseRequest<T, R>, R extends BaseResponse> R execute(BaseRequest<T, R> request) {
        return api.send(request);
    }
@Test
    public void sendLocation() {
        float lat = 21.999998f, lng = 105.2f, horizontalAccuracy = 1.9f;
        int livePeriod = 60, heading = 120, proximityAlertRadius = 50000;
        Location location = bot.execute(new SendLocation(chatId, lat, lng)
                .horizontalAccuracy(horizontalAccuracy)
                .livePeriod(livePeriod)
                .heading(heading)
                .proximityAlertRadius(proximityAlertRadius)
        ).message().location();
        assertEquals(lat, location.latitude(), 0.00001f);
        assertEquals(lng, location.longitude(), 0.00001f);
        assertEquals(horizontalAccuracy, location.horizontalAccuracy(), 0.11f);
        assertEquals(livePeriod, location.livePeriod().intValue());
        assertEquals(heading, location.heading().intValue());
        assertEquals(proximityAlertRadius, location.proximityAlertRadius().intValue());
    }