content: package com.alibaba.json.bvt.value;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.JSON;
  
  import junit.framework.TestCase;
  
  public class LongValueTest extends TestCase {
  
      public void test_value() {
          long step = ((long) Integer.MAX_VALUE) * 1000 * 1000;
          for (long i = Long.MIN_VALUE; i <= 0; i += step) {
              VO vo = new VO();
              vo.value = i;
              String text = JSON.toJSONString(vo);
              VO vo2 = JSON.parseObject(text, VO.class);
              Assert.assertEquals(vo.value, vo2.value);
          }
          for (long i = Long.MAX_VALUE; i >= 0; i -= step) {
              VO vo = new VO();
              vo.value = i;
              String text = JSON.toJSONString(vo);
              VO vo2 = JSON.parseObject(text, VO.class);
              Assert.assertEquals(vo.value, vo2.value);
          }
      }
  
      public void test_value_1() {
          long step = ((long) Integer.MAX_VALUE) * 1000 * 1000;
          for (long i = Long.MIN_VALUE; i <= 0; i += step) {
              V1 vo = new V1();
              vo.value = i;
              String text = JSON.toJSONString(vo);
              V1 vo2 = JSON.parseObject(text, V1.class);
              Assert.assertEquals(vo.value, vo2.value);
          }
          for (long i = Long.MAX_VALUE; i >= 0; i -= step) {
              V1 vo = new V1();
              vo.value = i;
              String text = JSON.toJSONString(vo);
              V1 vo2 = JSON.parseObject(text, V1.class);
              Assert.assertEquals(vo.value, vo2.value);
          }
      }
      
      public void test_value_2() {
          long step = ((long) Integer.MAX_VALUE) * 1000 * 1000;
          for (long i = Long.MIN_VALUE; i <= 0; i += step) {
              V2 vo = new V2();
              vo.value = i;
              String text = JSON.toJSONString(vo);
              V2 vo2 = JSON.parseObject(text, V2.class);
              Assert.assertEquals(vo.value, vo2.value);
          }
          for (long i = Long.MAX_VALUE; i >= 0; i -= step) {
              V2 vo = new V2();
              vo.value = i;
              String text = JSON.toJSONString(vo);
              V2 vo2 = JSON.parseObject(text, V2.class);
              Assert.assertEquals(vo.value, vo2.value);
          }
      }
  
      public static class VO {
  
          public long value;
      }
  
      static class V1 {
  
          public long value;
      }
  
      public static class V2 {
  
          private long value;
  
          public long getValue() {
              return value;
          }
  
          public void setValue(long value) {
              this.value = value;
          }
  
      }
  }
  