// Path: json-path/src/test/java/com/jayway/jsonpath/Configurations.java
// public class Configurations {
// 
//     public static final Configuration JSON_ORG_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JsonOrgMappingProvider())
//             .jsonProvider(new JsonOrgJsonProvider())
//             .build();
// 
//     public static final Configuration GSON_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new GsonMappingProvider())
//             .jsonProvider(new GsonJsonProvider())
//             .build();
// 
//     public static final Configuration JACKSON_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JacksonMappingProvider())
//             .jsonProvider(new JacksonJsonProvider())
//             .build();
// 
//     public static final Configuration JACKSON_JSON_NODE_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JacksonMappingProvider())
//             .jsonProvider(new JacksonJsonNodeJsonProvider())
//             .build();
// 
//     public static final Configuration JSON_SMART_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JsonSmartMappingProvider())
//             .jsonProvider(new JsonSmartJsonProvider())
//             .build();
// 
//     public static final Configuration JAKARTA_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JakartaMappingProvider())
//             .jsonProvider(new JakartaJsonProvider())
//             .build();
// 
//     public static Iterable<Configuration> configurations() {
//         return Arrays.asList(
//                JSON_SMART_CONFIGURATION
//                ,GSON_CONFIGURATION
//                ,JACKSON_CONFIGURATION
//                ,JACKSON_JSON_NODE_CONFIGURATION
//                ,JSON_ORG_CONFIGURATION
//                ,JAKARTA_CONFIGURATION
//         );
//     }
// 
//     public static Iterable<Configuration> objectMappingConfigurations() {
//         return Arrays.asList(
//                  GSON_CONFIGURATION
//                 ,JACKSON_CONFIGURATION
//                 ,JACKSON_JSON_NODE_CONFIGURATION
//                 ,JAKARTA_CONFIGURATION
//         );
//     }
// }
// 
// Path: json-path/src/main/java/com/jayway/jsonpath/JsonPath.java
// public static ParseContext using(Configuration configuration) {
//     return new ParseContextImpl(configuration);
// }


import com.jayway.jsonpath.Configuration;
import com.jayway.jsonpath.Configurations;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.jayway.jsonpath.JsonPath.using;
import static org.junit.Assert.assertTrue;
    public void testStringConcat() {
        verifyTextFunction(conf, "$.text.concat()", "abcdef");
    }

    @Test
    public void testStringAndNumberConcat() {
        verifyTextAndNumberFunction(conf, "$.concat($.text[0], $.numbers[0])", "a1");
    }

    @Test
    public void testStringConcatWithJSONParameter() {
        verifyTextFunction(conf, "$.text.concat(\"-\", \"ghijk\")", "abcdef-ghijk");
    }

    @Test
    public void testAppendNumber() {
        verifyMathFunction(conf, "$.numbers.append(11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 0).avg()", 10.0);
    }

    /**
     * Aggregation function should ignore text values
     */
    @Test
    public void testAppendTextAndNumberThenSum() {
        verifyMathFunction(conf, "$.numbers.append(\"0\", \"11\").sum()", 55.0);
    }

    @Test
    public void testErrantCloseBraceNegative() {
        try {
// Path: json-path/src/test/java/com/jayway/jsonpath/Configurations.java
// public class Configurations {
// 
//     public static final Configuration JSON_ORG_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JsonOrgMappingProvider())
//             .jsonProvider(new JsonOrgJsonProvider())
//             .build();
// 
//     public static final Configuration GSON_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new GsonMappingProvider())
//             .jsonProvider(new GsonJsonProvider())
//             .build();
// 
//     public static final Configuration JACKSON_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JacksonMappingProvider())
//             .jsonProvider(new JacksonJsonProvider())
//             .build();
// 
//     public static final Configuration JACKSON_JSON_NODE_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JacksonMappingProvider())
//             .jsonProvider(new JacksonJsonNodeJsonProvider())
//             .build();
// 
//     public static final Configuration JSON_SMART_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JsonSmartMappingProvider())
//             .jsonProvider(new JsonSmartJsonProvider())
//             .build();
// 
//     public static final Configuration JAKARTA_CONFIGURATION = Configuration
//             .builder()
//             .mappingProvider(new JakartaMappingProvider())
//             .jsonProvider(new JakartaJsonProvider())
//             .build();
// 
//     public static Iterable<Configuration> configurations() {
//         return Arrays.asList(
//                JSON_SMART_CONFIGURATION
//                ,GSON_CONFIGURATION
//                ,JACKSON_CONFIGURATION
//                ,JACKSON_JSON_NODE_CONFIGURATION
//                ,JSON_ORG_CONFIGURATION
//                ,JAKARTA_CONFIGURATION
//         );
//     }
// 
//     public static Iterable<Configuration> objectMappingConfigurations() {
//         return Arrays.asList(
//                  GSON_CONFIGURATION
//                 ,JACKSON_CONFIGURATION
//                 ,JACKSON_JSON_NODE_CONFIGURATION
//                 ,JAKARTA_CONFIGURATION
//         );
//     }
// }
// 
// Path: json-path/src/main/java/com/jayway/jsonpath/JsonPath.java
// public static ParseContext using(Configuration configuration) {
//     return new ParseContextImpl(configuration);
// }


// Path: json-path/src/test/java/com/jayway/jsonpath/internal/function/NestedFunctionTest.java
import com.jayway.jsonpath.Configuration;
import com.jayway.jsonpath.Configurations;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.jayway.jsonpath.JsonPath.using;
import static org.junit.Assert.assertTrue;

    public void testStringConcat() {
        verifyTextFunction(conf, "$.text.concat()", "abcdef");
    }

    @Test
    public void testStringAndNumberConcat() {
        verifyTextAndNumberFunction(conf, "$.concat($.text[0], $.numbers[0])", "a1");
    }

    @Test
    public void testStringConcatWithJSONParameter() {
        verifyTextFunction(conf, "$.text.concat(\"-\", \"ghijk\")", "abcdef-ghijk");
    }

    @Test
    public void testAppendNumber() {
        verifyMathFunction(conf, "$.numbers.append(11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 0).avg()", 10.0);
    }

    /**
     * Aggregation function should ignore text values
     */
    @Test
    public void testAppendTextAndNumberThenSum() {
        verifyMathFunction(conf, "$.numbers.append(\"0\", \"11\").sum()", 55.0);
    }

    @Test
    public void testErrantCloseBraceNegative() {
        try {
            using(conf).parse(this.NUMBER_SERIES).read("$.numbers.append(0, 1, 2}).avg()");