diff --git a/DIRECTORY.md b/DIRECTORY.md index 3554092d..2c64065c 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -136,6 +136,7 @@ * [Maxcharacter](./Strings/MaxCharacter.php) * [Reversestring](./Strings/ReverseString.php) * [Reversewords](./Strings/ReverseWords.php) + * [RemoveDuplicateCharacters](./Strings/RemoveDuplicateCharacters.php) ## Tests * Ciphers diff --git a/Strings/RemoveDuplicateCharacters.php b/Strings/RemoveDuplicateCharacters.php new file mode 100644 index 00000000..cdad3fb1 --- /dev/null +++ b/Strings/RemoveDuplicateCharacters.php @@ -0,0 +1,34 @@ +assertSame('progamin', removeDuplicateCharacters('programming')); + } + + /** + * Test with a string that has no duplicates. + */ + public function testStringWithoutDuplicates(): void + { + $this->assertSame('abc', removeDuplicateCharacters('abc')); + } + + /** + * Test with an empty string. + */ + public function testEmptyString(): void + { + $this->assertSame('', removeDuplicateCharacters('')); + } + + /** + * Test with a string containing only one character repeated. + */ + public function testSingleCharacterRepeated(): void + { + $this->assertSame('a', removeDuplicateCharacters('aaaaa')); + } + + /** + * Test with special characters. + */ + public function testStringWithSpecialCharacters(): void + { + $this->assertSame('ab!@', removeDuplicateCharacters('aabb!!@@')); + } + + /** + * Test with a string containing spaces. + */ + public function testStringWithSpaces(): void + { + $this->assertSame('a b', removeDuplicateCharacters('a a a b b')); + } + + /** + * Test with a string containing mixed case characters. + */ + public function testStringWithMixedCase(): void + { + $this->assertSame('aAbB', removeDuplicateCharacters('aAaAaAbBbB')); + } +} \ No newline at end of file