/* * File: ReaderTokenizerTest.java * Authors: Kevin R. Dixon * Company: Sandia National Laboratories * Project: Cognitive Framework Lite * * Copyright September 21, 2006, Sandia Corporation. Under the terms of Contract * DE-AC04-94AL85000, there is a non-exclusive license for use of this work by * or on behalf of the U.S. Government. Export of this program may require a * license from the United States Government. See CopyrightHistory.txt for * complete details. * * */ package gov.sandia.cognition.io; import gov.sandia.cognition.io.ReaderTokenizer; import static gov.sandia.cognition.math.matrix.VectorReaderTest.TEST_FILENAME; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.util.ArrayList; import junit.framework.TestCase; /** * Unit tests for ReaderTokenizerTest * * @author Kevin R. Dixon * @since 1.0 */ public class ReaderTokenizerTest extends TestCase { private ReaderTokenizer tokenizer; private Reader fileReader; @Override protected void setUp() throws Exception { final URL fileURL = ClassLoader.getSystemResource(TEST_FILENAME); this.fileReader = new InputStreamReader( ClassLoader.getSystemResourceAsStream(TEST_FILENAME)); this.tokenizer = this.getReaderTokenizer(this.fileReader); } @Override protected void tearDown() { this.tokenizer = null; } /** * Test of isValid method, of class gov.sandia.isrc.util.ReaderTokenizer. */ public void testIsValid() { System.out.println("isValid"); assertTrue("Tokenizer is not valid.", this.tokenizer.isValid()); this.tokenizer = this.getReaderTokenizer(null); assertFalse("Tokenizer is valid.", this.tokenizer.isValid()); } /** * Test of setValid method, of class gov.sandia.isrc.util.ReaderTokenizer. */ public void testSetValid() { System.out.println("setValid"); final boolean result = this.tokenizer.isValid(); assertTrue(result == this.tokenizer.isValid()); this.tokenizer.setValid(!result); assertFalse(result == this.tokenizer.isValid()); } /** * Test of tokenizeString method, of class * gov.sandia.isrc.util.ReaderTokenizer. */ public void testTokenizeString() { System.out.println("tokenizeString"); final String data = "There should be 8 tokens\tin this\nstring"; final ArrayList<String> tokens = ReaderTokenizer.tokenizeString(data); assertEquals(8, tokens.size()); assertEquals(tokens.get(0), "There"); assertEquals(tokens.get(3), "8"); assertEquals(tokens.get(5), "in"); final ArrayList<String> tokens2 = ReaderTokenizer.tokenizeString(data, tokens.size()); assertEquals(tokens.toString(), tokens2.toString()); final ArrayList<String> tokens3 = ReaderTokenizer.tokenizeString(data, 100); assertEquals(tokens.toString(), tokens3.toString()); final ArrayList<String> tokens4 = ReaderTokenizer.tokenizeString(data, 0); assertEquals(tokens.toString(), tokens4.toString()); try { ReaderTokenizer.tokenizeString(data, -1); fail("Should have thrown exception"); } catch (final IllegalArgumentException e) { System.out.println(e.getClass() + e.getMessage()); System.out.println("Good! Threw exception"); } final String data2 = ""; final ArrayList<String> tokens6 = ReaderTokenizer.tokenizeString(data2); assertEquals(0, tokens6.size()); } /** * Test of readNextLine method, of class * gov.sandia.isrc.util.ReaderTokenizer. */ public void testReadNextLine() throws Exception { System.out.println("readNextLine"); ArrayList<String> tokens; while (this.tokenizer.isValid()) { tokens = this.tokenizer.readNextLine(); } tokens = this.tokenizer.readNextLine(); assertNull(tokens); } /** * Test of getLastTokenNum method, of class * gov.sandia.isrc.util.ReaderTokenizer. */ public void testGetLastTokenNum() throws Exception { System.out.println("getLastTokenNum"); final ArrayList<String> tokens = this.tokenizer.readNextLine(); final int expected = tokens.size(); assertEquals(expected, this.tokenizer.getLastTokenNum()); } /** * Test of setLastTokenNum method, of class * gov.sandia.isrc.util.ReaderTokenizer. */ public void testSetLastTokenNum() throws Exception { System.out.println("setLastTokenNum"); final int a = this.tokenizer.getLastTokenNum(); final int b = (int) ((Math.random() * 100.0) + a + 1); this.tokenizer.setLastTokenNum(b); assertEquals(b, this.tokenizer.getLastTokenNum()); } /** * Test of getBufferedReader method, of class * gov.sandia.isrc.util.ReaderTokenizer. */ public void testGetBufferedReader() throws Exception { System.out.println("getBufferedReader"); assertNotNull(this.tokenizer.getBufferedReader()); this.tokenizer = new ReaderTokenizer(null); assertNull(this.tokenizer.getBufferedReader()); } /** * Test of setBufferedReader method, of class * gov.sandia.isrc.util.ReaderTokenizer. */ public void testSetBufferedReader() throws Exception { System.out.println("setBufferedReader"); final BufferedReader bufferedReader = new BufferedReader( this.fileReader); assertNotSame(bufferedReader, this.tokenizer.getBufferedReader()); this.tokenizer.setBufferedReader(bufferedReader); assertSame(bufferedReader, this.tokenizer.getBufferedReader()); } private ReaderTokenizer getReaderTokenizer(final Reader reader) { return new ReaderTokenizer(reader); } }