// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static Node convertToJson(Object source, String label) {
//     return convertToJson(source, label, false);
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static Node getNode(Object root, String path) {
//     return getNode(root, Path.create(path));
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static boolean nodeAbsent(Object json, String path, Configuration configuration) {
//     return nodeAbsent(json, Path.create(path), configuration);
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// @Deprecated
// public static boolean nodeExists(Object json, String path) {
//     return !getNode(json, path).isMissingNode();
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// static String quoteIfNeeded(String source) {
//     String trimmed = source.trim();
// 
//     if (isObject(trimmed) || isArray(trimmed) || isString(trimmed)
//         || isBoolean(trimmed) || isNull(trimmed)
//         || isNumber(trimmed)) {
//         return source;
//     } else {
//         return "\"" + source + "\"";
//     }
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static Node valueToNode(Object source) {
//     if (source instanceof Node) {
//         return (Node) source;
//     } else {
//         return converter.valueToNode(source);
//     }
// }


import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.math.BigDecimal;
import static java.util.Collections.singletonMap;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.convertToJson;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.getNode;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.nodeAbsent;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.nodeExists;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.quoteIfNeeded;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.valueToNode;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.ARRAY;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.BOOLEAN;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.NULL;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.NUMBER;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.OBJECT;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.STRING;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
        assertEquals(NUMBER, valueToNode(1.0).getNodeType());
        assertEquals(STRING, valueToNode("1.0").getNodeType());
        assertEquals(OBJECT, valueToNode(singletonMap("a", 1)).getNodeType());
        assertEquals(ARRAY, valueToNode(new int[]{1 ,2, 3}).getNodeType());
        assertEquals(STRING, valueToNode("true").getNodeType());
        assertEquals(BOOLEAN, valueToNode(true).getNodeType());
        assertEquals(STRING, valueToNode("false").getNodeType());
        assertEquals(BOOLEAN, valueToNode(false).getNodeType());
        assertEquals(STRING, valueToNode("null").getNodeType());
        assertEquals(NULL, valueToNode(null).getNodeType());
    }

    @Test
    void testQuoteIfNeeded() {
        assertEquals("1", quoteIfNeeded("1"));
        assertEquals("1.1", quoteIfNeeded("1.1"));
        assertEquals("{\"a\":1}", quoteIfNeeded("{\"a\":1}"));
        assertEquals("[1 ,2, 3]", quoteIfNeeded("[1 ,2, 3]"));
        assertEquals("true", quoteIfNeeded("true"));
        assertEquals("false", quoteIfNeeded("false"));
        assertEquals("null", quoteIfNeeded("null"));


        assertEquals("\"a\"", quoteIfNeeded("a"));
        assertEquals("\"a b\"", quoteIfNeeded("a b"));
        assertEquals("\"123 b\"", quoteIfNeeded("123 b"));
    }

    @Test
    void testGetStartNodeRoot() throws IOException {
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static Node convertToJson(Object source, String label) {
//     return convertToJson(source, label, false);
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static Node getNode(Object root, String path) {
//     return getNode(root, Path.create(path));
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static boolean nodeAbsent(Object json, String path, Configuration configuration) {
//     return nodeAbsent(json, Path.create(path), configuration);
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// @Deprecated
// public static boolean nodeExists(Object json, String path) {
//     return !getNode(json, path).isMissingNode();
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// static String quoteIfNeeded(String source) {
//     String trimmed = source.trim();
// 
//     if (isObject(trimmed) || isArray(trimmed) || isString(trimmed)
//         || isBoolean(trimmed) || isNull(trimmed)
//         || isNumber(trimmed)) {
//         return source;
//     } else {
//         return "\"" + source + "\"";
//     }
// }
// 
// Path: json-unit-core/src/main/java/net/javacrumbs/jsonunit/core/internal/JsonUtils.java
// public static Node valueToNode(Object source) {
//     if (source instanceof Node) {
//         return (Node) source;
//     } else {
//         return converter.valueToNode(source);
//     }
// }


// Path: json-unit-core/src/test/java/net/javacrumbs/jsonunit/core/internal/JsonUtilsTest.java
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.math.BigDecimal;
import static java.util.Collections.singletonMap;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.convertToJson;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.getNode;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.nodeAbsent;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.nodeExists;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.quoteIfNeeded;
import static net.javacrumbs.jsonunit.core.internal.JsonUtils.valueToNode;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.ARRAY;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.BOOLEAN;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.NULL;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.NUMBER;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.OBJECT;
import static net.javacrumbs.jsonunit.core.internal.Node.NodeType.STRING;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

        assertEquals(NUMBER, valueToNode(1.0).getNodeType());
        assertEquals(STRING, valueToNode("1.0").getNodeType());
        assertEquals(OBJECT, valueToNode(singletonMap("a", 1)).getNodeType());
        assertEquals(ARRAY, valueToNode(new int[]{1 ,2, 3}).getNodeType());
        assertEquals(STRING, valueToNode("true").getNodeType());
        assertEquals(BOOLEAN, valueToNode(true).getNodeType());
        assertEquals(STRING, valueToNode("false").getNodeType());
        assertEquals(BOOLEAN, valueToNode(false).getNodeType());
        assertEquals(STRING, valueToNode("null").getNodeType());
        assertEquals(NULL, valueToNode(null).getNodeType());
    }

    @Test
    void testQuoteIfNeeded() {
        assertEquals("1", quoteIfNeeded("1"));
        assertEquals("1.1", quoteIfNeeded("1.1"));
        assertEquals("{\"a\":1}", quoteIfNeeded("{\"a\":1}"));
        assertEquals("[1 ,2, 3]", quoteIfNeeded("[1 ,2, 3]"));
        assertEquals("true", quoteIfNeeded("true"));
        assertEquals("false", quoteIfNeeded("false"));
        assertEquals("null", quoteIfNeeded("null"));


        assertEquals("\"a\"", quoteIfNeeded("a"));
        assertEquals("\"a b\"", quoteIfNeeded("a b"));
        assertEquals("\"123 b\"", quoteIfNeeded("123 b"));
    }

    @Test
    void testGetStartNodeRoot() throws IOException {
        Node startNode = getNode(mapper.readTree("{\"test\":{\"value\":1}}"), "");