• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

intmainale / ProgettoMTSS2 / #4

07 May 2025 06:03PM UTC coverage: 85.714%. First build
#4

push

intmainale
Merge branch 'release/1.0'

30 of 35 new or added lines in 2 files covered. (85.71%)

30 of 35 relevant lines covered (85.71%)

0.86 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

83.33
/src/main/java/it/unipd/mtss/RomanPrinter.java
1
////////////////////////////////////////////////////////////////////
2
// Stefano Longhena 2111936
3
// Alessandro Savio 2101046
4
////////////////////////////////////////////////////////////////////
5

6
package it.unipd.mtss;
7

NEW
8
public class RomanPrinter {
×
9
    public static String print(int num) {
10
        String roman = IntegerToRoman.convert(num);
1✔
11
        return printAsciiArt(roman);
1✔
12
    }
13

14
    private static String printAsciiArt(String romanNumber) {
15
        if (romanNumber == null || romanNumber.isEmpty()) {
1✔
NEW
16
            throw new IllegalArgumentException("Roman numeral cannot be null or empty");
×
17
        }
18

19
        StringBuilder result = new StringBuilder();
1✔
20
        String[] lines = new String[3]; // Each character is 3 lines tall
1✔
21

22
        // Initialize lines
23
        for (int i = 0; i < 3; i++) {
1✔
24
            lines[i] = "";
1✔
25
        }
26

27
        for (char c : romanNumber.toCharArray()) {
1✔
28
            String[] charArt = getAsciiArt(c);
1✔
29
            for (int i = 0; i < 3; i++) {
1✔
30
                lines[i] += charArt[i]; // Directly concatenate each character's art without extra spaces
1✔
31
            }
32
        }
33

34
        // Join lines with newline separators
35
        result.append(String.join("\n", lines));
1✔
36
        return result.toString();
1✔
37
    }
38

39
    private static String[] getAsciiArt(char c) {
40
        switch (c) {
1✔
41
            case 'I':
42
                return new String[] { "  _ ", " |_|", " |_|" }; // 3-line "I"
1✔
43
            case 'V':
44
                return new String[] { "\\   /", " \\ / ", "  V  " };
1✔
45
            case 'X':
46
                return new String[] { "\\ / ", "  X ", " / \\ " };
1✔
47
            case 'L':
48
                return new String[] { "|   ", "|_  ", "|   " };
1✔
49
            case 'C':
NEW
50
                return new String[] { "  __ ", " /   ", "|__  " };
×
51
            case 'D':
52
                return new String[] { " __  ", "|  \\ ", "|__/ " };
1✔
53
            case 'M':
54
                return new String[] { "__  __", "|  \\/ |", "|_/\\__|" };
1✔
55
            default:
NEW
56
                throw new IllegalArgumentException("Invalid Roman numeral: " + c);
×
57
        }
58
    }
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc