/* Copyright (c) 2005-2006 Ricebridge. All Rights Reserved. * * This file is available under the terms and conditions of the * Ricebridge "Open Source API" policy; Ricebridge grants use of this * copyrighted work under the terms of a BSD-style license only. See * http://www.opensource.org/licenses/bsd-license.php for more * information. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * - Neither the name of the Ricebridge nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ package com.ricebridge.csvman.test; import com.ricebridge.csvman.*; import org.jostraca.util.*; import junit.framework.*; import junit.textui.*; import javax.swing.table.*; import java.sql.ResultSet; import java.util.*; import java.io.*; /** Test cases for {@link com.ricebridge.csvman.CsvManager#setEndLine}. * <p>The <b><a href="EndLineTest.java.html">Source Code</a></b> of this Java class * is available under a <a href="http://www.opensource.org/licenses/bsd-license.php">BSD-style license</a>.</p> */ public class EndLineTest extends TestCase { // standard test methods public EndLineTest( String pName ) { super( pName ); } public static TestSuite suite() { return new TestSuite( EndLineTest.class ); } public static void main( String[] pArgs ) throws Exception { TestRunner.run( suite() ); } public void testLargeFileEndLine() throws Exception { CsvManager cm = new CsvManager(); cm.setEndLine( 10 ); Date start = new Date(); List lines = cm.loadAsLists( TestUtil.getTextCsvFile("p100000") ); Date end = new Date(); assertEquals( 10, lines.size() ); //System.out.println( (end.getTime() - start.getTime()) ); // NOTE: if this test fails, do not ignore it. It probably indicates that the endline // setting is not working and the entire file is being read. // test with p100000 assertTrue( (end.getTime() - start.getTime()) < 200 ); } public void manual_testEndLineBatch() throws Exception { Runtime runtime = Runtime.getRuntime(); int numrepeats = 11111; PrintWriter writer = new PrintWriter( new FileWriter( "measure-endline.csv" ) ); writer.println( "Test,EndLine,Mem,TimeMillis"); for( int rI = 0; rI < numrepeats; rI++ ) { int endline = 1 + (int) Math.round(99.0*Math.random()); CsvManager cm = new CsvManager(); cm.setEndLine( endline ); Date start = new Date(); List lines = cm.loadAsLists( TestUtil.getTextCsvFile("p100") ); Date end = new Date(); assertEquals( endline, lines.size() ); double usedmem = (runtime.totalMemory() - runtime.freeMemory())/1000.0; writer.println( rI+","+endline+","+usedmem+","+(end.getTime()-start.getTime())); } writer.close(); } }