package com.alibaba.json.bvt.path;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import org.junit.Assert;
import com.alibaba.fastjson.JSONPath;
public class JSONPath_list_range extends TestCase {
public void test_range() throws Exception {
List list = new ArrayList();
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
JSONPath path = new JSONPath("$[2:4]");
List<Object> result = (List<Object>) path.eval(list);
Assert.assertEquals(3, result.size());
Assert.assertSame(list.get(2), result.get(0));
Assert.assertSame(list.get(3), result.get(1));
Assert.assertSame(list.get(4), result.get(2));
}
public void test_range_1() throws Exception {
List list = new ArrayList();
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
JSONPath path = new JSONPath("$[:4]");
List<Object> result = (List<Object>) path.eval(list);
Assert.assertEquals(5, result.size());
Assert.assertSame(list.get(0), result.get(0));
Assert.assertSame(list.get(1), result.get(1));
Assert.assertSame(list.get(2), result.get(2));
Assert.assertSame(list.get(3), result.get(3));
Assert.assertSame(list.get(4), result.get(4));
}
public void test_range_2() throws Exception {
List list = new ArrayList();
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
JSONPath path = new JSONPath("$[4:]");
List<Object> result = (List<Object>) path.eval(list);
Assert.assertEquals(2, result.size());
Assert.assertSame(list.get(4), result.get(0));
Assert.assertSame(list.get(5), result.get(1));
}
public void test_range_step() throws Exception {
List list = new ArrayList();
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
list.add(new Object());
JSONPath path = new JSONPath("$[2:8:2]");
List<Object> result = (List<Object>) path.eval(list);
Assert.assertEquals(2, result.size());
Assert.assertSame(list.get(2), result.get(0));
Assert.assertSame(list.get(4), result.get(1));
}
}