Skip to content

Commit 2b2102b

Browse files
committed
F!! MarkdownTable is consistent width by default per column
1 parent 4abb7aa commit 2b2102b

File tree

8 files changed

+120
-79
lines changed

8 files changed

+120
-79
lines changed

approvaltests-tests/src/test/java/org/approvaltests/StoryBoardTest.gameOfLifeInMarkdown.approved.md

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,67 +2,67 @@
22

33

44
### Initial:
5-
| | 0 | 1 | 2 | 3 | 4 |
6-
|-----|---|---|---|---|---|
7-
|**0**| . | . | . | . | . |
8-
|**1**| . | . | . | . | . |
9-
|**2**| . | x | x | x | . |
10-
|**3**| . | . | . | . | . |
11-
|**4**| . | . | . | . | . |
5+
| | 0 | 1 | 2 | 3 | 4 |
6+
|-------|---|---|---|---|---|
7+
| **0** | . | . | . | . | . |
8+
| **1** | . | . | . | . | . |
9+
| **2** | . | x | x | x | . |
10+
| **3** | . | . | . | . | . |
11+
| **4** | . | . | . | . | . |
1212

1313

1414
### Start Game:
15-
| | 0 | 1 | 2 | 3 | 4 |
16-
|-----|---|---|---|---|---|
17-
|**0**| . | . | . | . | . |
18-
|**1**| . | . | x | . | . |
19-
|**2**| . | . | x | . | . |
20-
|**3**| . | . | x | . | . |
21-
|**4**| . | . | . | . | . |
15+
| | 0 | 1 | 2 | 3 | 4 |
16+
|-------|---|---|---|---|---|
17+
| **0** | . | . | . | . | . |
18+
| **1** | . | . | x | . | . |
19+
| **2** | . | . | x | . | . |
20+
| **3** | . | . | x | . | . |
21+
| **4** | . | . | . | . | . |
2222

2323

2424
### Frame #2:
25-
| | 0 | 1 | 2 | 3 | 4 |
26-
|-----|---|---|---|---|---|
27-
|**0**| . | . | . | . | . |
28-
|**1**| . | . | . | . | . |
29-
|**2**| . | x | x | x | . |
30-
|**3**| . | . | . | . | . |
31-
|**4**| . | . | . | . | . |
25+
| | 0 | 1 | 2 | 3 | 4 |
26+
|-------|---|---|---|---|---|
27+
| **0** | . | . | . | . | . |
28+
| **1** | . | . | . | . | . |
29+
| **2** | . | x | x | x | . |
30+
| **3** | . | . | . | . | . |
31+
| **4** | . | . | . | . | . |
3232

3333

3434
`setting alive: *`
3535
`setting dead: _`
3636

3737

3838
### Frame #3:
39-
| | 0 | 1 | 2 | 3 | 4 |
40-
|-----|---|---|---|---|---|
41-
|**0**| _ | _ | _ | _ | _ |
42-
|**1**| _ | _ | * | _ | _ |
43-
|**2**| _ | _ | * | _ | _ |
44-
|**3**| _ | _ | * | _ | _ |
45-
|**4**| _ | _ | _ | _ | _ |
39+
| | 0 | 1 | 2 | 3 | 4 |
40+
|-------|---|---|---|---|---|
41+
| **0** | _ | _ | _ | _ | _ |
42+
| **1** | _ | _ | * | _ | _ |
43+
| **2** | _ | _ | * | _ | _ |
44+
| **3** | _ | _ | * | _ | _ |
45+
| **4** | _ | _ | _ | _ | _ |
4646

4747

4848
### Frame #4:
49-
| | 0 | 1 | 2 | 3 | 4 |
50-
|-----|---|---|---|---|---|
51-
|**0**| _ | _ | _ | _ | _ |
52-
|**1**| _ | _ | _ | _ | _ |
53-
|**2**| _ | * | * | * | _ |
54-
|**3**| _ | _ | _ | _ | _ |
55-
|**4**| _ | _ | _ | _ | _ |
49+
| | 0 | 1 | 2 | 3 | 4 |
50+
|-------|---|---|---|---|---|
51+
| **0** | _ | _ | _ | _ | _ |
52+
| **1** | _ | _ | _ | _ | _ |
53+
| **2** | _ | * | * | * | _ |
54+
| **3** | _ | _ | _ | _ | _ |
55+
| **4** | _ | _ | _ | _ | _ |
5656

5757

5858
`setting dead: `
5959

6060

6161
### Frame #5:
62-
| | 0 | 1 | 2 | 3 | 4 |
63-
|-----|---|---|---|---|---|
64-
|**0**| | | | | |
65-
|**1**| | | * | | |
66-
|**2**| | | * | | |
67-
|**3**| | | * | | |
68-
|**4**| | | | | |
62+
| | 0 | 1 | 2 | 3 | 4 |
63+
|-------|---|---|---|---|---|
64+
| **0** | | | | | |
65+
| **1** | | | * | | |
66+
| **2** | | | * | | |
67+
| **3** | | | * | | |
68+
| **4** | | | | | |
Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
| Score | Modifier |
2-
| --- | --- |
3-
| 1 | -5 |
4-
| 2 | -4 |
5-
| 3 | -4 |
6-
| 4 | -3 |
7-
| 5 | -3 |
8-
| 6 | -2 |
9-
| 7 | -2 |
10-
| 8 | -1 |
11-
| 9 | -1 |
12-
| 10 | 0 |
13-
| 11 | 0 |
14-
| 12 | 1 |
15-
| 13 | 1 |
16-
| 14 | 2 |
17-
| 15 | 2 |
18-
| 16 | 3 |
19-
| 17 | 3 |
20-
| 18 | 4 |
21-
| 19 | 4 |
22-
| 20 | 5 |
2+
|-------|----------|
3+
| 1 | -5 |
4+
| 2 | -4 |
5+
| 3 | -4 |
6+
| 4 | -3 |
7+
| 5 | -3 |
8+
| 6 | -2 |
9+
| 7 | -2 |
10+
| 8 | -1 |
11+
| 9 | -1 |
12+
| 10 | 0 |
13+
| 11 | 0 |
14+
| 12 | 1 |
15+
| 13 | 1 |
16+
| 14 | 2 |
17+
| 15 | 2 |
18+
| 16 | 3 |
19+
| 17 | 3 |
20+
| 18 | 4 |
21+
| 19 | 4 |
22+
| 20 | 5 |
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
| Input | Camel Case | Snake Case | Kebab Case |
2-
| --- | --- | --- | --- |
3-
| verify json | verifyJson | verify_json | verify-json |
4-
| verify all | verifyAll | verify_all | verify-all |
1+
| Input | Camel Case | Snake Case | Kebab Case |
2+
|-------------------|------------------|-------------------|-------------------|
3+
| verify json | verifyJson | verify_json | verify-json |
4+
| verify all | verifyAll | verify_all | verify-all |
55
| verify parameters | verifyParameters | verify_parameters | verify-parameters |
6-
| verify as json | verifyAsJson | verify_as_json | verify-as-json |
6+
| verify as json | verifyAsJson | verify_as_json | verify-as-json |

approvaltests-util-tests/src/test/java/com/spun/util/DateUtilsTest.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.spun.util;
22

3-
import org.apache.commons.lang3.time.DatePrinter;
43
import org.approvaltests.utils.WithTimeZone;
54
import org.junit.jupiter.api.Test;
65

@@ -17,8 +16,10 @@
1716

1817
public class DateUtilsTest
1918
{
20-
private StartAndEndUseCases[] startAndEndUseCases = {new StartAndEndUseCases(Calendar.YEAR,
21-
"2003.05.03 15:20:20:123", "2003.01.01 00:00:00:000", "2003.12.31 23:59:59:999")};
19+
private StartAndEndUseCases[] getStartAndEndUseCases() {
20+
return new StartAndEndUseCases[] {new StartAndEndUseCases(Calendar.YEAR,
21+
"2003.05.03 15:20:20:123", "2003.01.01 00:00:00:000", "2003.12.31 23:59:59:999")};
22+
}
2223
@Test
2324
public void testToDate()
2425
{
@@ -39,15 +40,19 @@ private String toUtc(Date toDate)
3940
@Test
4041
public void testStartAndEndUseCases()
4142
{
42-
for (int i = 0; i < startAndEndUseCases.length; i++)
43+
try (WithTimeZone t = new WithTimeZone())
4344
{
44-
assertStartAndEnd(startAndEndUseCases[i]);
45+
StartAndEndUseCases[] startAndEndUseCases = getStartAndEndUseCases();
46+
for (int i = 0; i < startAndEndUseCases.length; i++)
47+
{
48+
assertStartAndEnd(startAndEndUseCases[i]);
49+
}
4550
}
4651
}
4752
private void assertStartAndEnd(StartAndEndUseCases useCase)
4853
{
49-
assertEquals(useCase.start, DateUtils.getStartOf(useCase.unit, useCase.date), "Start date ");
50-
assertEquals(useCase.end, DateUtils.getEndOf(useCase.unit, useCase.date), "End date ");
54+
assertEquals(useCase.start, DateUtils.getStartOf(useCase.unit, useCase.date), "Start date ");
55+
assertEquals(useCase.end, DateUtils.getEndOf(useCase.unit, useCase.date), "End date ");
5156
}
5257
@Test
5358
public void testNextAndLast()

approvaltests-util/src/main/java/com/spun/util/MarkdownTable.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
public class MarkdownTable implements MarkdownCompatible
77
{
88
public Queryable<MarkdownTableElement> markdown = new Queryable<MarkdownTableElement>(MarkdownTableElement.class);
9-
private boolean fixedWidth = false;
9+
private boolean fixedWidth = true;
1010

1111
public void setColumnsConsistentWidth(boolean setting) {
1212
fixedWidth = setting;
@@ -63,7 +63,10 @@ private void handleFixedWidth() {
6363
for (int column = 0; column < rows.get(0).size(); column++) {
6464
int col = column;
6565
if (rows.get(0).get(column) instanceof MarkdownTableContents) {
66-
Queryable<MarkdownTableContents> select = rows.select(e -> e.get(col)).where(e -> e instanceof MarkdownTableContents).select(e -> (MarkdownTableContents) e);
66+
Queryable<Resizable> select = rows
67+
.select(e -> e.get(col))
68+
.where(e -> e instanceof Resizable)
69+
.select(e -> (Resizable) e);
6770
int length = select.max(e -> e.getLength()).getLength();
6871
select.forEach(e -> e.setPadding(length));
6972
}
@@ -77,7 +80,12 @@ public static String printColumnHeaders(String... headers)
7780
public static Queryable<MarkdownTableElement> constructColumnHeaders(String... headers)
7881
{
7982
Queryable<MarkdownTableElement> row = constructRow(headers);
80-
row.addAll(constructRow(ArrayUtils.of("---", headers.length)));
83+
for (int i = 0; i < headers.length; i++) {
84+
row.add(MarkdownTableElement.DELIMITER);
85+
row.add(new MarkdownTableHeader());
86+
}
87+
row.add(MarkdownTableElement.DELIMITER);
88+
row.add(MarkdownTableElement.NEWLINE);
8189
return row;
8290
}
8391
public static String printRow(Object... columns)

approvaltests-util/src/main/java/com/spun/util/MarkdownTableContents.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.spun.util;
22

3-
public class MarkdownTableContents implements MarkdownTableElement {
3+
public class MarkdownTableContents implements MarkdownTableElement, Resizable {
44
private String contents;
55
private int padUntil;
66

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.spun.util;
2+
3+
public class MarkdownTableHeader implements MarkdownTableElement, Resizable {
4+
private int padUntil = 1;
5+
6+
public MarkdownTableHeader() {
7+
}
8+
9+
@Override
10+
public String toString() {
11+
int dashes = padUntil + 2; // Math.max(3, padUntil + 2);
12+
return "----------------------------------".substring(0, dashes);
13+
}
14+
15+
public int getLength() {
16+
return 1;
17+
}
18+
19+
public void setPadding(int length) {
20+
padUntil = length;
21+
}
22+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.spun.util;
2+
3+
public interface Resizable {
4+
public int getLength();
5+
public void setPadding(int length);
6+
}

0 commit comments

Comments
 (0)