/*******************************************************************************
* Copyright (c) 2012, 2017 Diamond Light Source Ltd and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************/
package org.eclipse.nebula.visualization.xygraph.dataprovider;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import org.eclipse.nebula.visualization.xygraph.dataprovider.CircularBuffer;
import org.junit.Test;
public class CircularBufferTest {
private CircularBuffer<String> circularBuffer;
@Test
public void testCircularBuffer() {
circularBuffer = new CircularBuffer<String>(5);
}
@Test
public void testAdd() {
circularBuffer = new CircularBuffer<String>(5);
for (int i = 0; i < 10; i++) {
circularBuffer.add("e" + i);
System.out.println(circularBuffer);
}
assertArrayEquals(new String[] { "e5", "e6", "e7", "e8", "e9" }, circularBuffer.toArray());
}
@Test
public void testToArray() {
circularBuffer = new CircularBuffer<String>(5);
for (int i = 0; i < 10; i++) {
circularBuffer.add("e" + i);
}
assertArrayEquals(new String[] { "e5", "e6", "e7", "e8", "e9" }, circularBuffer.toArray());
}
@Test
public void testClear() {
circularBuffer = new CircularBuffer<String>(5);
for (int i = 0; i < 10; i++) {
circularBuffer.add("e" + i);
}
System.out.println(circularBuffer);
assertArrayEquals(new String[] { "e5", "e6", "e7", "e8", "e9" }, circularBuffer.toArray());
circularBuffer.clear();
System.out.println(circularBuffer);
assertArrayEquals(new String[] {}, circularBuffer.toArray());
}
@Test
public void testSetBufferSize() {
circularBuffer = new CircularBuffer<String>(5);
for (int i = 0; i < 2; i++) {
circularBuffer.add("e" + i);
}
System.out.println(circularBuffer);
// test expand
circularBuffer.setBufferSize(8, false);
for (int i = 0; i < 6; i++) {
circularBuffer.add("e" + (i + 2));
}
System.out.println(circularBuffer);
assertEquals("[e0, e1, e2, e3, e4, e5, e6, e7]", circularBuffer.toString());
// test shrink
circularBuffer.setBufferSize(5, false);
System.out.println(circularBuffer);
assertEquals("[e3, e4, e5, e6, e7]", circularBuffer.toString());
// test add
for (int i = 0; i < 2; i++) {
circularBuffer.add("e" + i);
}
System.out.println(circularBuffer);
assertEquals("[e5, e6, e7, e0, e1]", circularBuffer.toString());
}
@Test
public void testIterator() {
circularBuffer = new CircularBuffer<String>(102400);
for (int i = 0; i < 200000; i++) {
circularBuffer.add("e" + i);
}
int i = 200000 - 102400;
// System.out.println(circularBuffer);
for (String s : circularBuffer) {
assertEquals("e" + i, s);
i++;
}
}
}