// Path: commons/src/main/java/com/dataagg/util/lang/ValuePlus.java
// public class ValuePlus {
// 	public static int intValue(Object value, int defaultValue) {
// 		if (value != null) {
// 			return Convert.toIntValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static long longValue(Object value, long defaultValue) {
// 		if (value != null) {
// 			return Convert.toLongValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static short shortValue(Object value, short defaultValue) {
// 		if (value != null) {
// 			return Convert.toShortValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static float floatValue(Object value, float defaultValue) {
// 		if (value != null) {
// 			return Convert.toFloatValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static double doubleValue(Object value, double defaultValue) {
// 		if (value != null) {
// 			return Convert.toDoubleValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static byte byteValue(Object value, byte defaultValue) {
// 		if (value != null) {
// 			return Convert.toByteValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static char charValue(Object value, char defaultValue) {
// 		if (value != null) {
// 			return Convert.toCharValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static String strValue(Object value, String defaultValue) {
// 		if (value != null) {
// 			return Convert.toString(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static String[] strValues(Object value, String[] defaultValue) {
// 		if (value != null) {
// 			return Convert.toStringArray(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static boolean booleanValue(Object value, boolean defaultValue) {
// 		if (value != null && value instanceof String && ((String) value).trim().length() > 0) {
// 			String v = ((String) value).trim();
// 			if ("1".equals(v) || "true".equalsIgnoreCase(v) || "yes".equalsIgnoreCase(v) || "on".equalsIgnoreCase(v)) {
// 				return true;
// 			}
// 			if ("0".equals(v) || "false".equalsIgnoreCase(v) || "no".equalsIgnoreCase(v) || "off".equalsIgnoreCase(v)) {
// 				return false;
// 			}
// 			return Convert.toBooleanValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	@SuppressWarnings("unchecked")
// 	public static <T> List<T> lst(T... all) {
// 		List<T> lst = new ArrayList<>();
// 		for (T t : all) {
// 			lst.add(t);
// 		}
// 		return lst;
// 	}
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Arrays;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.dataagg.util.lang.ValuePlus;
package com.dataagg.util;





public class WPageIteratorTest {
	private static final Logger LOG = LoggerFactory.getLogger(WPageIteratorTest.class);

	@Before
	public void setUp() throws Exception {}

	@After
	public void tearDown() throws Exception {}

	@Test
	public void testWPage() {
		WPage page = new WPage();
		//100
		int total = 100;
		page.setTotal(total);

		//		page.setFrom(0);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(19);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(20);
		//		assertEquals(2, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(99);
		//		assertEquals(5, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//		page.setFrom(100);
		//		assertEquals(5, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		//101
		//		total = 101;
		//		page.setTotal(total);
		//
		//		page.setFrom(0);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(19);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(20);
		//		assertEquals(2, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(99);
		//		assertEquals(5, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(100);
		//		assertEquals(6, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//		page.setFrom(101);
		//		assertEquals(6, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
	}

	@Test
	public void testDoSearch() {
		WPage page = new WPage();
		int total = 10;
		page.setSize(3);

		WPageIterator<Integer> wpIterator = new WPageIterator<Integer>(page) {
			@Override
			public void doSearch() {
// Path: commons/src/main/java/com/dataagg/util/lang/ValuePlus.java
// public class ValuePlus {
// 	public static int intValue(Object value, int defaultValue) {
// 		if (value != null) {
// 			return Convert.toIntValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static long longValue(Object value, long defaultValue) {
// 		if (value != null) {
// 			return Convert.toLongValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static short shortValue(Object value, short defaultValue) {
// 		if (value != null) {
// 			return Convert.toShortValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static float floatValue(Object value, float defaultValue) {
// 		if (value != null) {
// 			return Convert.toFloatValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static double doubleValue(Object value, double defaultValue) {
// 		if (value != null) {
// 			return Convert.toDoubleValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static byte byteValue(Object value, byte defaultValue) {
// 		if (value != null) {
// 			return Convert.toByteValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static char charValue(Object value, char defaultValue) {
// 		if (value != null) {
// 			return Convert.toCharValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static String strValue(Object value, String defaultValue) {
// 		if (value != null) {
// 			return Convert.toString(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static String[] strValues(Object value, String[] defaultValue) {
// 		if (value != null) {
// 			return Convert.toStringArray(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	public static boolean booleanValue(Object value, boolean defaultValue) {
// 		if (value != null && value instanceof String && ((String) value).trim().length() > 0) {
// 			String v = ((String) value).trim();
// 			if ("1".equals(v) || "true".equalsIgnoreCase(v) || "yes".equalsIgnoreCase(v) || "on".equalsIgnoreCase(v)) {
// 				return true;
// 			}
// 			if ("0".equals(v) || "false".equalsIgnoreCase(v) || "no".equalsIgnoreCase(v) || "off".equalsIgnoreCase(v)) {
// 				return false;
// 			}
// 			return Convert.toBooleanValue(value);
// 		}
// 		return defaultValue;
// 	}
// 
// 	@SuppressWarnings("unchecked")
// 	public static <T> List<T> lst(T... all) {
// 		List<T> lst = new ArrayList<>();
// 		for (T t : all) {
// 			lst.add(t);
// 		}
// 		return lst;
// 	}
// }


// Path: commons/src/test/java/com/dataagg/util/WPageIteratorTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Arrays;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.dataagg.util.lang.ValuePlus;

package com.dataagg.util;





public class WPageIteratorTest {
	private static final Logger LOG = LoggerFactory.getLogger(WPageIteratorTest.class);

	@Before
	public void setUp() throws Exception {}

	@After
	public void tearDown() throws Exception {}

	@Test
	public void testWPage() {
		WPage page = new WPage();
		//100
		int total = 100;
		page.setTotal(total);

		//		page.setFrom(0);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(19);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(20);
		//		assertEquals(2, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(99);
		//		assertEquals(5, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//		page.setFrom(100);
		//		assertEquals(5, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		//101
		//		total = 101;
		//		page.setTotal(total);
		//
		//		page.setFrom(0);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(19);
		//		assertEquals(1, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(20);
		//		assertEquals(2, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(99);
		//		assertEquals(5, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//
		//		page.setFrom(100);
		//		assertEquals(6, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
		//		page.setFrom(101);
		//		assertEquals(6, page.getPageNo());
		//		assertEquals(total, page.getTotal().intValue());
	}

	@Test
	public void testDoSearch() {
		WPage page = new WPage();
		int total = 10;
		page.setSize(3);

		WPageIterator<Integer> wpIterator = new WPageIterator<Integer>(page) {
			@Override
			public void doSearch() {
				update(ValuePlus.lst(1, 2, 3), total);