mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-13 02:32:09 +10:00
fixes for ascii
This commit is contained in:
@@ -2,9 +2,12 @@ package org.diylc.netlist;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -67,4 +70,101 @@ public class TreeAsciiUtilTest {
|
||||
assertEquals("─┤ ├─", result.get(1));
|
||||
assertEquals(" └yy┘ ", result.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHtmlLength() {
|
||||
assertEquals(3, TreeAsciiUtil.htmlLength("abc"));
|
||||
assertEquals(1, TreeAsciiUtil.htmlLength(" "));
|
||||
assertEquals(1, TreeAsciiUtil.htmlLength("─"));
|
||||
assertEquals(5, TreeAsciiUtil.htmlLength("a b─c"));
|
||||
assertEquals(0, TreeAsciiUtil.htmlLength(""));
|
||||
assertEquals(0, TreeAsciiUtil.htmlLength(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGenerateString() {
|
||||
assertEquals("", TreeAsciiUtil.generateString("a", 0));
|
||||
assertEquals("", TreeAsciiUtil.generateString("a", -1));
|
||||
assertEquals("aaa", TreeAsciiUtil.generateString("a", 3));
|
||||
assertEquals(" ", TreeAsciiUtil.generateString(" ", 2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConcatenateMultiLineSerialSimple() {
|
||||
List<String> element1 = Arrays.asList("A", "B", "C");
|
||||
List<String> element2 = Arrays.asList("D", "E", "F");
|
||||
|
||||
List<List<String>> elements = Arrays.asList(element1, element2);
|
||||
List<String> result = TreeAsciiUtil.concatenateMultiLineSerial(" --- ", elements);
|
||||
|
||||
assertEquals(3, result.size());
|
||||
assertEquals("A --- D", result.get(0));
|
||||
assertEquals("B --- E", result.get(1));
|
||||
assertEquals("C --- F", result.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConcatenateMultiLineSerialDifferentHeights() {
|
||||
List<String> element1 = Arrays.asList("A", "B", "C");
|
||||
List<String> element2 = Arrays.asList("D");
|
||||
|
||||
List<List<String>> elements = Arrays.asList(element1, element2);
|
||||
List<String> result = TreeAsciiUtil.concatenateMultiLineSerial(" --- ", elements);
|
||||
|
||||
assertEquals(3, result.size());
|
||||
assertEquals("A --- ", result.get(0));
|
||||
assertEquals("B --- D", result.get(1));
|
||||
assertEquals("C --- ", result.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConcatenateMultiLineParallelSimple() {
|
||||
List<String> element1 = Arrays.asList("A", "B", "C");
|
||||
List<String> element2 = Arrays.asList("D", "E", "F");
|
||||
|
||||
List<List<String>> elements = Arrays.asList(element1, element2);
|
||||
List<String> result = TreeAsciiUtil.concatenateMultiLineParallel(elements);
|
||||
|
||||
assertEquals(7, result.size()); // 3 lines for element1 + 1 separator + 3 lines for element2
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConcatenateMultiLineParallelEmptyInput() {
|
||||
assertEquals(0, TreeAsciiUtil.concatenateMultiLineParallel(Collections.emptyList()).size());
|
||||
assertEquals(0, TreeAsciiUtil.concatenateMultiLineParallel(null).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConcatenateMultiLineParallelSingleElement() {
|
||||
List<String> element = Arrays.asList("A", "B");
|
||||
List<List<String>> elements = Arrays.asList(element);
|
||||
|
||||
List<String> result = TreeAsciiUtil.concatenateMultiLineParallel(elements);
|
||||
assertEquals(2, result.size());
|
||||
// We just get back the original element
|
||||
assertEquals(element.size(), result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConcatenateMultiLineParallelComplexStructure() {
|
||||
// Create a more complex structure to test alignment
|
||||
List<String> element1 = Arrays.asList("Short");
|
||||
List<String> element2 = Arrays.asList("Line1", "Line2 Long", "Line3");
|
||||
List<String> element3 = Arrays.asList("X", "Y", "Z", "W");
|
||||
|
||||
List<List<String>> elements = Arrays.asList(element1, element2, element3);
|
||||
List<String> result = TreeAsciiUtil.concatenateMultiLineParallel(elements);
|
||||
|
||||
assertEquals(10, result.size()); // 1 + 1 + 3 + 1 + 4 = 10 lines
|
||||
|
||||
// Verify some characteristics that should be true
|
||||
// The center line should have horizontal connections
|
||||
assertTrue(result.get(4).contains(TreeAsciiUtil.BOXH));
|
||||
|
||||
// First element should have a right connection on its center line
|
||||
assertTrue(result.get(0).contains(TreeAsciiUtil.BOXDR));
|
||||
|
||||
// Last element should have a left connection on its center line
|
||||
assertTrue(result.get(6).contains(TreeAsciiUtil.BOXUR));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user