// Path: src/main/java/com/statful/utils/Pair.java
// public final class Pair<L, R> {
// 
//     /**
//      * Left element of the Pair
//      */
//     private L left;
//     /**
//      * Right element of the Pair
//      */
//     private R right;
// 
//     /**
//      * Pair constructor
//      *
//      * @param left  element of the pair
//      * @param right element of the pair
//      */
//     public Pair(final L left, final R right) {
//         this.left = left;
//         this.right = right;
//     }
// 
//     /**
//      * @return gets the value of the left element
//      */
//     public L getLeft() {
//         return left;
//     }
// 
//     /**
//      * @return gets the value of the right element
//      */
//     public R getRight() {
//         return right;
//     }
// 
//     @Override
//     public String toString() {
//         return "Pair{" + "left=" + left + ", right=" + right + '}';
//     }
// 
//     @Override
//     public boolean equals(final Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (o == null || getClass() != o.getClass()) {
//             return false;
//         }
//         Pair<?, ?> pair = (Pair<?, ?>) o;
//         return Objects.equals(left, pair.left)
//                 && Objects.equals(right, pair.right);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(left, right);
//     }
// }


import com.google.common.collect.Lists;
import com.statful.utils.Pair;
import io.vertx.core.Vertx;
import io.vertx.core.VertxOptions;
import io.vertx.core.datagram.DatagramSocket;
import io.vertx.core.logging.Logger;
import io.vertx.core.logging.LoggerFactory;
import io.vertx.ext.unit.Async;
import io.vertx.ext.unit.TestContext;
import io.vertx.ext.unit.junit.VertxUnitRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import static java.util.Objects.nonNull;
package com.statful.client;




@RunWith(VertxUnitRunner.class)
public class StatfulUDPClientIntegrationTest extends IntegrationTestCase {

    private static final Logger LOGGER = LoggerFactory.getLogger(StatfulUDPClientIntegrationTest.class);

    private static final String HOST = "0.0.0.0";
    private static final int UDP_PORT = 1234;

    private DatagramSocket metricsReceiver;
    private Vertx vertx;

    @SuppressWarnings("unchecked")
    @Before
    public void setUp() throws Exception {

// Path: src/main/java/com/statful/utils/Pair.java
// public final class Pair<L, R> {
// 
//     /**
//      * Left element of the Pair
//      */
//     private L left;
//     /**
//      * Right element of the Pair
//      */
//     private R right;
// 
//     /**
//      * Pair constructor
//      *
//      * @param left  element of the pair
//      * @param right element of the pair
//      */
//     public Pair(final L left, final R right) {
//         this.left = left;
//         this.right = right;
//     }
// 
//     /**
//      * @return gets the value of the left element
//      */
//     public L getLeft() {
//         return left;
//     }
// 
//     /**
//      * @return gets the value of the right element
//      */
//     public R getRight() {
//         return right;
//     }
// 
//     @Override
//     public String toString() {
//         return "Pair{" + "left=" + left + ", right=" + right + '}';
//     }
// 
//     @Override
//     public boolean equals(final Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (o == null || getClass() != o.getClass()) {
//             return false;
//         }
//         Pair<?, ?> pair = (Pair<?, ?>) o;
//         return Objects.equals(left, pair.left)
//                 && Objects.equals(right, pair.right);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(left, right);
//     }
// }


// Path: src/test/java/com/statful/client/StatfulUDPClientIntegrationTest.java
import com.google.common.collect.Lists;
import com.statful.utils.Pair;
import io.vertx.core.Vertx;
import io.vertx.core.VertxOptions;
import io.vertx.core.datagram.DatagramSocket;
import io.vertx.core.logging.Logger;
import io.vertx.core.logging.LoggerFactory;
import io.vertx.ext.unit.Async;
import io.vertx.ext.unit.TestContext;
import io.vertx.ext.unit.junit.VertxUnitRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import static java.util.Objects.nonNull;

package com.statful.client;




@RunWith(VertxUnitRunner.class)
public class StatfulUDPClientIntegrationTest extends IntegrationTestCase {

    private static final Logger LOGGER = LoggerFactory.getLogger(StatfulUDPClientIntegrationTest.class);

    private static final String HOST = "0.0.0.0";
    private static final int UDP_PORT = 1234;

    private DatagramSocket metricsReceiver;
    private Vertx vertx;

    @SuppressWarnings("unchecked")
    @Before
    public void setUp() throws Exception {

        List<Pair<String, String>> matchReplace = Lists.newArrayList();