package com.jcwhatever.nucleus.utils.text; import org.junit.Assert; import org.junit.Test; public class CircularStringTest { private String string = "12345"; @Test public void testSetString() throws Exception { CircularString circ = new CircularString(); circ.setString(string); Assert.assertEquals(string, circ.toString()); } @Test public void testGetChars() throws Exception { CircularString circ = new CircularString(string); char[] chars = circ.getChars(); Assert.assertEquals(string, String.copyValueOf(chars)); } @Test public void testReset() throws Exception { CircularString circ = new CircularString(string); circ.rotateLeft(1); circ.reset(); char[] chars = circ.getChars(); Assert.assertEquals(string, String.copyValueOf(chars)); Assert.assertEquals(string, circ.toString()); } @Test public void testGetRotation() throws Exception { CircularString circ = new CircularString(string); circ.rotateLeft(1); Assert.assertEquals(1, circ.getRotation()); circ.rotateRight(2); Assert.assertEquals(string.length()-1, circ.getRotation()); } @Test public void testRotateLeft() throws Exception { CircularString circ = new CircularString(string); circ.rotateLeft(1); Assert.assertEquals(1, circ.getRotation()); Assert.assertEquals("23451", circ.toString()); circ.rotateLeft(2); Assert.assertEquals(3, circ.getRotation()); Assert.assertEquals("45123", circ.toString()); circ.rotateLeft(-3); Assert.assertEquals(0, circ.getRotation()); Assert.assertEquals("12345", circ.toString()); circ.rotateLeft(string.length() * 100 + 1); Assert.assertEquals(1, circ.getRotation()); Assert.assertEquals("23451", circ.toString()); } @Test public void testRotateRight() throws Exception { CircularString circ = new CircularString(string); circ.rotateRight(1); Assert.assertEquals(string.length() - 1, circ.getRotation()); Assert.assertEquals("51234", circ.toString()); circ.rotateRight(2); Assert.assertEquals(string.length() - 3, circ.getRotation()); Assert.assertEquals("34512", circ.toString()); circ.rotateRight(-3); Assert.assertEquals(0, circ.getRotation()); Assert.assertEquals("12345", circ.toString()); circ.rotateRight(string.length() * 100 + 1); Assert.assertEquals(string.length() - 1, circ.getRotation()); Assert.assertEquals("51234", circ.toString()); } @Test public void testSetChar() throws Exception { CircularString circ = new CircularString(string); circ.setChar(0, 'A'); Assert.assertEquals("A2345", circ.toString()); circ.rotateLeft(1); circ.setChar(0, 'A'); Assert.assertEquals("A345A", circ.toString()); } @Test public void testLength() throws Exception { CircularString circ = new CircularString(string); Assert.assertEquals(string.length(), circ.length()); circ.rotateLeft(1); Assert.assertEquals(string.length(), circ.length()); circ.rotateRight(3); Assert.assertEquals(string.length(), circ.length()); } @Test public void testCharAt() throws Exception { CircularString circ = new CircularString(string); Assert.assertEquals('1', circ.charAt(0)); circ.rotateLeft(1); Assert.assertEquals('2', circ.charAt(0)); } @Test public void testSubSequence() throws Exception { CircularString circ = new CircularString(string); CircularString circ1 = circ.subSequence(0, 1); Assert.assertEquals("1", circ1.toString()); circ.rotateLeft(1); Assert.assertEquals("1", circ1.toString()); CircularString circ2 = circ.subSequence(0, 1); Assert.assertEquals("2", circ2.toString()); } }