// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonBigDecimal(BigDecimal number) {
//   return new IsJsonNumber(is(number), NumericNode::decimalValue);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonBigInteger(BigInteger number) {
//   return new IsJsonNumber(is(number), NumericNode::bigIntegerValue);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonDouble(double number) {
//   return new IsJsonNumber(is(number), NumericNode::asDouble);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonFloat(float number) {
//   return new IsJsonNumber(is(number), NumericNode::floatValue);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonInt(int number) {
//   return new IsJsonNumber(is(number), NumericNode::asInt);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonLong(long number) {
//   return new IsJsonNumber(is(number), NumericNode::asLong);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonNumber() {
//   // Function.identity() doesn't work since types change
//   return new IsJsonNumber(is(anything()), n -> n);
// }


import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.BigIntegerNode;
import com.fasterxml.jackson.databind.node.DecimalNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import java.math.BigDecimal;
import java.math.BigInteger;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
import org.junit.Test;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonBigDecimal;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonBigInteger;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonDouble;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonFloat;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonInt;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonLong;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonNumber;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
  @Test
  public void testMatchIntMatcher() throws Exception {
    final Matcher<JsonNode> sut = jsonInt(is(1));

    assertThat(NF.numberNode(1), is(sut));
  }

  @Test
  public void testMatchLongValue() throws Exception {
    final Matcher<JsonNode> sut = jsonLong(1L);

    assertThat(NF.numberNode(1), is(sut));
  }

  @Test
  public void testMatchLongMatcher() throws Exception {
    final Matcher<JsonNode> sut = jsonLong(is(1L));

    assertThat(NF.numberNode(1), is(sut));
  }

  @Test
  public void testMatchBigIntegerValue() throws Exception {
    final Matcher<JsonNode> sut = jsonBigInteger(BigInteger.ONE);

    assertThat(NF.numberNode(BigInteger.ONE), is(sut));
  }

  @Test
  public void testMatchBigIntegerMatcher() throws Exception {
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonBigDecimal(BigDecimal number) {
//   return new IsJsonNumber(is(number), NumericNode::decimalValue);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonBigInteger(BigInteger number) {
//   return new IsJsonNumber(is(number), NumericNode::bigIntegerValue);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonDouble(double number) {
//   return new IsJsonNumber(is(number), NumericNode::asDouble);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonFloat(float number) {
//   return new IsJsonNumber(is(number), NumericNode::floatValue);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonInt(int number) {
//   return new IsJsonNumber(is(number), NumericNode::asInt);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonLong(long number) {
//   return new IsJsonNumber(is(number), NumericNode::asLong);
// }
// 
// Path: jackson/src/main/java/com/spotify/hamcrest/jackson/IsJsonNumber.java
// public static Matcher<JsonNode> jsonNumber() {
//   // Function.identity() doesn't work since types change
//   return new IsJsonNumber(is(anything()), n -> n);
// }


// Path: jackson/src/test/java/com/spotify/hamcrest/jackson/IsJsonNumberTest.java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.BigIntegerNode;
import com.fasterxml.jackson.databind.node.DecimalNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import java.math.BigDecimal;
import java.math.BigInteger;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
import org.junit.Test;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonBigDecimal;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonBigInteger;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonDouble;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonFloat;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonInt;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonLong;
import static com.spotify.hamcrest.jackson.IsJsonNumber.jsonNumber;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;

  @Test
  public void testMatchIntMatcher() throws Exception {
    final Matcher<JsonNode> sut = jsonInt(is(1));

    assertThat(NF.numberNode(1), is(sut));
  }

  @Test
  public void testMatchLongValue() throws Exception {
    final Matcher<JsonNode> sut = jsonLong(1L);

    assertThat(NF.numberNode(1), is(sut));
  }

  @Test
  public void testMatchLongMatcher() throws Exception {
    final Matcher<JsonNode> sut = jsonLong(is(1L));

    assertThat(NF.numberNode(1), is(sut));
  }

  @Test
  public void testMatchBigIntegerValue() throws Exception {
    final Matcher<JsonNode> sut = jsonBigInteger(BigInteger.ONE);

    assertThat(NF.numberNode(BigInteger.ONE), is(sut));
  }

  @Test
  public void testMatchBigIntegerMatcher() throws Exception {
    final Matcher<JsonNode> sut = jsonBigInteger(is(BigInteger.ONE));