Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions basics/src/test/java/pl/mperor/lab/java/ConsoleSupportTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package pl.mperor.lab.java;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class ConsoleSupportTest {

@Test
public void testSimulatedSystemInScanner() {
byte[] bytes = """
Hello
World""".getBytes(StandardCharsets.UTF_8);

var original = System.in;
System.setIn(new ByteArrayInputStream(bytes));

try (Scanner sc = new Scanner(System.in)) {
Assertions.assertEquals("Hello", sc.next());
Assertions.assertEquals("World", sc.next());
}
System.setIn(original);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,37 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.regex.Pattern;

public class NumberSystemsTest {

@Test
public void testBinary() {
String raw = "1011";
int radix = 2;
Assertions.assertTrue(Pattern.compile("[01]+").asMatchPredicate().test(raw));
Assertions.assertTrue(raw.matches("[01]+"));
Assertions.assertEquals(0b1011, Integer.parseInt(raw, radix));
}

@Test
public void testOctal() {
String raw = "13";
int radix = 8;
Assertions.assertTrue(Pattern.compile("[0-7]+").asMatchPredicate().test(raw));
Assertions.assertTrue(raw.matches("[0-7]+"));
Assertions.assertEquals(013, Integer.parseInt(raw, radix));
}

@Test
public void testHex() {
String raw = "1a";
int radix = 16;
Assertions.assertTrue(Pattern.compile("[0-9A-Fa-f]+").asMatchPredicate().test(raw));
Assertions.assertTrue(raw.matches("[0-9A-Fa-f]+"));
Assertions.assertEquals(0x1a, Integer.parseInt(raw, radix));
}

@Test
public void testDecimal() {
String raw = "111";
int radix = 10;
Assertions.assertTrue(Pattern.compile("[0-9]+").asMatchPredicate().test(raw));
Assertions.assertTrue(raw.matches("[0-9]+"));
Assertions.assertEquals(111, Integer.parseInt(raw, radix));
}

Expand Down
69 changes: 69 additions & 0 deletions basics/src/test/java/pl/mperor/lab/java/data/type/StringTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package pl.mperor.lab.java.data.type;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.List;
import java.util.Locale;

public class StringTest {

@Test
public void testStringCommonlyUsedMethods() {
String s = "abc";
Assertions.assertEquals(3, s.length());
Assertions.assertTrue(s.contains("b"));
Assertions.assertTrue(!s.isBlank() && !s.isEmpty());
Assertions.assertTrue(s.startsWith("a") && s.endsWith("c"));
Assertions.assertEquals("a*c", s.replace('b', '*'));
Assertions.assertEquals("bc", s.substring(1, s.length()));
Assertions.assertArrayEquals(new String[]{"google", "com"}, "google.com".split("\\."));
Assertions.assertTrue("-1".matches("^-?\\d+$"), "Like isInteger(...)");
}

@Test
public void testStringImmutability() {
String original = "| Fix";
String modified = original
.replace('|', ' ')
.strip()
.concat("ed")
.toUpperCase();

Assertions.assertEquals("| Fix", original);
Assertions.assertEquals("FIXED", modified);
}

@Test
public void testCompareStrings() {
String qwerty = "qwerty";
String newQwerty = new String(qwerty);
Assertions.assertTrue("qwerty" == qwerty, "String Pool exits!");
Assertions.assertFalse(qwerty == newQwerty);
Assertions.assertTrue(qwerty == newQwerty.intern(), "'intern()' returns string from the pool");
Assertions.assertTrue(qwerty.equals(newQwerty));
Assertions.assertTrue(qwerty.equalsIgnoreCase("Qwerty"));
}

@Test
public void testEscapeSequences() {
String doubleQuote = "\"Title\"";
String tabulator = "\tabc";
String backslash = "C:\\Windows";
String newLine = "...\n***";
String carriageReturn = "[ ] 0%\r[==========] 100%";
String unicodeCode = "Copyright \u00A9";
List.of(doubleQuote, tabulator, backslash, newLine, carriageReturn, unicodeCode)
.forEach(System.out::println);
}

@Test
public void testStringFormatting() {
// Format specifier: %[flags][width][.precision]conversion
// Escaping %%
String format = "%s | %d | %#x | %.2f | %b | %c | %%%n";
String formatted = String.format(Locale.UK, format, "Str", 1, 10, 1.23, true, '.');
Assertions.assertEquals("Str | 1 | 0xa | 1.23 | true | . | %\r\n", formatted);
}

}
1 change: 0 additions & 1 deletion jdk/src/test/java/pl/mperor/lab/java/Java4.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ public void testRegex() {

private String getTestHtml() {
return """
\
<!DOCTYPE html>
<html lang="en">
<head>
Expand Down