diff --git a/src/main/java/com/examplehub/basics/number/DoubleExample.java b/src/main/java/com/examplehub/basics/number/DoubleExample.java new file mode 100644 index 00000000..0e57f841 --- /dev/null +++ b/src/main/java/com/examplehub/basics/number/DoubleExample.java @@ -0,0 +1,4 @@ +package com.examplehub.basics.number; + +public class DoubleExample { +} diff --git a/src/main/java/com/examplehub/basics/oop/ObjectExample.java b/src/main/java/com/examplehub/basics/oop/ObjectExample.java new file mode 100644 index 00000000..ca654f7b --- /dev/null +++ b/src/main/java/com/examplehub/basics/oop/ObjectExample.java @@ -0,0 +1,4 @@ +package com.examplehub.basics.oop; + +public class ObjectExample { +} diff --git a/src/main/java/com/examplehub/leetcode/middle/ValidSudoku.java b/src/main/java/com/examplehub/leetcode/middle/ValidSudoku.java index 0df44edc..36f82b64 100644 --- a/src/main/java/com/examplehub/leetcode/middle/ValidSudoku.java +++ b/src/main/java/com/examplehub/leetcode/middle/ValidSudoku.java @@ -29,7 +29,6 @@ public static boolean solution1(char[][] board) { return false; } } - // travel all sub-box // TODO return true; diff --git a/src/test/java/com/examplehub/basics/bool/BooleanExampleTest.java b/src/test/java/com/examplehub/basics/bool/BooleanExampleTest.java index fde37595..fd29f4da 100644 --- a/src/test/java/com/examplehub/basics/bool/BooleanExampleTest.java +++ b/src/test/java/com/examplehub/basics/bool/BooleanExampleTest.java @@ -48,4 +48,24 @@ void testTernaryOperator() { int abs = num < 0 ? -num : num; assertEquals(3, abs); } + + @Test + void testValueOf() { + Boolean b = Boolean.valueOf(true); + assertTrue(b.booleanValue()); + + b = Boolean.valueOf("false"); + assertFalse(b.booleanValue()); + } + + @Test + void testAutoBoxing() { + Boolean b = false; + System.out.println(b); + assertFalse(b); + + boolean bValue = b; + System.out.println(bValue); + assertFalse(bValue); + } } diff --git a/src/test/java/com/examplehub/basics/chars/CharExampleTest.java b/src/test/java/com/examplehub/basics/chars/CharExampleTest.java index 7dcd997f..fc3e0a53 100644 --- a/src/test/java/com/examplehub/basics/chars/CharExampleTest.java +++ b/src/test/java/com/examplehub/basics/chars/CharExampleTest.java @@ -32,4 +32,63 @@ void testAddAndSub() { assertEquals(9, '9' - '0'); assertEquals(0, 'a' - 97); } + + @Test + void testValueOf() { + Character c = Character.valueOf('A'); + assertEquals('A', c.charValue()); + } + + @Test + void testAutoboxing() { + Character c = 'A'; + System.out.println(c); + assertEquals('A', c); + } + + @Test + void testIsLower() { + assertFalse(Character.isLowerCase('A')); + assertTrue(Character.isLowerCase('a')); + assertFalse(Character.isLowerCase('1')); + } + + @Test + void testIsUpper() { + assertTrue(Character.isUpperCase('A')); + assertFalse(Character.isUpperCase('a')); + assertFalse(Character.isUpperCase('1')); + } + + @Test + void testIsDigit() { + System.out.println(Character.isDigit('A')); + System.out.println(Character.isDigit('a')); + System.out.println(Character.isDigit('1')); + + assertFalse(Character.isDigit('A')); + assertFalse(Character.isDigit('a')); + assertTrue(Character.isDigit('1')); + } + + @Test + void testToLower() { + assertEquals('a', Character.toLowerCase('A')); + } + + @Test + void testToUpper() { + assertEquals('A', Character.toUpperCase('a')); + } + + @Test + void testGetNumericValue() { + System.out.println(Character.getNumericValue('8')); + assertEquals(8, Character.getNumericValue('8')); + + System.out.println(Character.getNumericValue('A')); + System.out.println(Character.getNumericValue('a')); + assertEquals(10, Character.getNumericValue('A')); + assertEquals(10, Character.getNumericValue('a')); + } } diff --git a/src/test/java/com/examplehub/basics/number/DoubleExampleTest.java b/src/test/java/com/examplehub/basics/number/DoubleExampleTest.java new file mode 100644 index 00000000..b6850551 --- /dev/null +++ b/src/test/java/com/examplehub/basics/number/DoubleExampleTest.java @@ -0,0 +1,32 @@ +package com.examplehub.basics.number; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class DoubleExampleTest { + @Test + void testValueOf() { + Double d = Double.valueOf(3.14); + System.out.println(d.doubleValue()); + assertEquals(3.14, d.doubleValue()); + + d = Double.valueOf("3.14159"); + System.out.println(d.doubleValue()); + assertEquals(3.14159, d.doubleValue()); + } + + @Test + void testIsNaN() { + Double d = 0.0 / 0; + assertEquals(d, Double.NaN); + } + + @Test + void testAutoboxing() { + Double d = 3.14; + assertEquals(3.14, d.doubleValue()); + double pi = d; + assertEquals(3.14, pi); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/number/IntegerExampleTest.java b/src/test/java/com/examplehub/basics/number/IntegerExampleTest.java index 6f315d42..aa059636 100644 --- a/src/test/java/com/examplehub/basics/number/IntegerExampleTest.java +++ b/src/test/java/com/examplehub/basics/number/IntegerExampleTest.java @@ -2,9 +2,39 @@ import static org.junit.jupiter.api.Assertions.*; +import jdk.jfr.StackTrace; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.function.Executable; class IntegerExampleTest { + + @Test + void testValueOf() { + Integer integer = Integer.valueOf(100); + System.out.println(integer); + assertEquals(100, integer.intValue()); + + integer = Integer.valueOf("123"); + System.out.println(integer); + assertEquals(123, integer.intValue()); + + integer = Integer.valueOf("a", 16); + System.out.println(integer); + assertEquals(10, integer.intValue()); + } + + @Test + void testParseInt() { + int number = Integer.parseInt("123"); + System.out.println(number); + assertEquals(123, number); + + assertThrows(NumberFormatException.class, () -> { + int num = Integer.parseInt("123a"); + fail(); + }); + } + @Test void testAutoBoxing() { Integer integer = 10; @@ -12,6 +42,11 @@ void testAutoBoxing() { Integer integer1 = 10; assertTrue(integer == integer1); assertTrue(integer.equals(integer1)); + + Integer first = 128; + Integer second = 128; + System.out.println(first == second); + assertNotSame(first, second); } @Test @@ -24,4 +59,19 @@ void testAutoBoxingNullPointer() { assertTrue(true); } } + + @Test + void testToBinaryString() { + assertEquals("1010", Integer.toBinaryString(10)); + } + + @Test + void testToOctalString() { + assertEquals("12", Integer.toOctalString(10)); + } + + @Test + void test(){ + assertEquals("a", Integer.toHexString(10)); + } } diff --git a/src/test/java/com/examplehub/basics/oop/ObjectExampleTest.java b/src/test/java/com/examplehub/basics/oop/ObjectExampleTest.java new file mode 100644 index 00000000..75877b1a --- /dev/null +++ b/src/test/java/com/examplehub/basics/oop/ObjectExampleTest.java @@ -0,0 +1,110 @@ +package com.examplehub.basics.oop; + +import org.junit.jupiter.api.Test; + +import java.util.Objects; + +import static org.junit.jupiter.api.Assertions.*; + +class ObjectExampleTest { + @Test + void testObject() { + Object o = new Object(); + System.out.println(o); + } + + @Test + void testEquals() { + class Student { + private int id; + private String name; + public Student(int id, String name) { + this.id = id; + this.name = name; + } + } + class People { + private final String name; + private final int age; + + public People(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + People people = (People) o; + return age == people.age && Objects.equals(name, people.name); + } + + @Override + public int hashCode() { + return 0; + } + } + Student stu1 = new Student(10001, "duyuanchao"); + Student stu2 = new Student(10001, "duyuanchao"); + assertNotSame(stu1, stu2); + assertNotEquals(stu1, stu2); + + People p1 = new People("duyuanchao", 25); + People p2 = new People("duyuanchao", 25); + People p3 = new People("jack", 25); + assertNotSame(p1, p2); + assertEquals(p1, p2); + assertNotEquals(p1, p3); + } + + @Test + void testHashCode() { + class People { + private final String name; + private final int age; + + public People(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + People people = (People) o; + return age == people.age && Objects.equals(name, people.name); + } + + @Override + public int hashCode() { + return this.age % 13; + } + } + People p1 = new People("duyuanchao", 25); + People p2 = new People("duyuanchao", 25); + assertEquals(p1.hashCode(), p2.hashCode()); + } + + @Test + void testToString() { + class People { + private final String name; + private final int age; + + public People(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public String toString() { + return "name = " + name + ", age = " + age; + } + } + + People people = new People("duyuanchao", 25); + assertEquals("name = duyuanchao, age = 25", people.toString()); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/utils/MathUtilsExampleTest.java b/src/test/java/com/examplehub/basics/utils/MathUtilsExampleTest.java index 62e2331d..98bd09b8 100644 --- a/src/test/java/com/examplehub/basics/utils/MathUtilsExampleTest.java +++ b/src/test/java/com/examplehub/basics/utils/MathUtilsExampleTest.java @@ -51,4 +51,11 @@ void testRandom() { double randomNumber = Math.random(); assertTrue(randomNumber >= 0 && randomNumber < 1); } + + @Test + void testRound() { + assertEquals(3, Math.round(3.14)); + assertEquals(4, Math.round(3.78)); + assertEquals(-3, Math.round(-3.14)); + } }