|
1 |
| -import { assertArrayIncludes } from "@std/assert"; |
| 1 | +import { |
| 2 | + assert, |
| 3 | + assertAlmostEquals, |
| 4 | + assertArrayIncludes, |
| 5 | + assertEquals, |
| 6 | + assertFalse, |
| 7 | +} from "@std/assert"; |
2 | 8 | import * as easy from "../src/easy.ts";
|
| 9 | +import { ListNode } from "../src/utils.ts"; |
3 | 10 |
|
4 | 11 | Deno.test(function twoSumTest() {
|
5 | 12 | assertArrayIncludes(easy.twoSum([2, 7, 11, 15], 9), [0, 1]);
|
6 | 13 | assertArrayIncludes(easy.twoSum([3, 2, 4], 6), [1, 2]);
|
7 | 14 | assertArrayIncludes(easy.twoSum([3, 3], 6), [0, 1]);
|
8 | 15 | });
|
| 16 | + |
| 17 | +Deno.test(function palindromeNumberTest() { |
| 18 | + assert(easy.palindromeNumber(121)); |
| 19 | + assertFalse(easy.palindromeNumber(-121)); |
| 20 | + assertFalse(easy.palindromeNumber(10)); |
| 21 | +}); |
| 22 | + |
| 23 | +Deno.test(function romanToIntegerTest() { |
| 24 | + assertEquals(easy.romanToInteger("III"), 3); |
| 25 | + assertEquals(easy.romanToInteger("LVIII"), 58); |
| 26 | + assertEquals(easy.romanToInteger("MCMXCIV"), 1994); |
| 27 | +}); |
| 28 | + |
| 29 | +Deno.test(function longestCommonPrefixTest() { |
| 30 | + assertEquals(easy.longestCommonPrefix(["flower", "flow", "flight"]), "fl"); |
| 31 | + assertEquals(easy.longestCommonPrefix(["dog", "racecar", "car"]), ""); |
| 32 | +}); |
| 33 | + |
| 34 | +Deno.test(function validParenthesesTest() { |
| 35 | + assert(easy.validParentheses("()")); |
| 36 | + assert(easy.validParentheses("()[]{}")); |
| 37 | + assertFalse(easy.validParentheses("(]")); |
| 38 | + assert(easy.validParentheses("([])")); |
| 39 | +}); |
| 40 | + |
| 41 | +Deno.test(function mergeTwoSortedListsTest() { |
| 42 | + assertEquals( |
| 43 | + easy.mergeTwoSortedLists( |
| 44 | + new ListNode(1, new ListNode(2, new ListNode(4, null))), |
| 45 | + new ListNode(1, new ListNode(3, new ListNode(4))), |
| 46 | + ), |
| 47 | + new ListNode( |
| 48 | + 1, |
| 49 | + new ListNode( |
| 50 | + 1, |
| 51 | + new ListNode( |
| 52 | + 2, |
| 53 | + new ListNode(3, new ListNode(4, new ListNode(4, null))), |
| 54 | + ), |
| 55 | + ), |
| 56 | + ), |
| 57 | + ); |
| 58 | + assertEquals(easy.mergeTwoSortedLists(null, null), null); |
| 59 | + assertEquals( |
| 60 | + easy.mergeTwoSortedLists(null, new ListNode(0)), |
| 61 | + new ListNode(0), |
| 62 | + ); |
| 63 | +}); |
| 64 | + |
| 65 | +Deno.test(function removeDuplicatesFromSortedArrayTest() { |
| 66 | + let nums: number[] = [1, 1, 2]; |
| 67 | + assertEquals(easy.removeDuplicatesFromSortedArray(nums), 2); |
| 68 | + assertEquals(nums.slice(0, 2), [1, 2]); |
| 69 | + |
| 70 | + nums = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]; |
| 71 | + assertEquals(easy.removeDuplicatesFromSortedArray(nums), 5); |
| 72 | + assertEquals(nums.slice(0, 5), [0, 1, 2, 3, 4]); |
| 73 | +}); |
| 74 | + |
| 75 | +Deno.test(function removeElementTest() { |
| 76 | + let nums: number[] = [3, 2, 2, 3]; |
| 77 | + assertEquals(easy.removeElement(nums, 3), 2); |
| 78 | + assertArrayIncludes(nums.slice(0, 2), [2, 2]); |
| 79 | + |
| 80 | + nums = [0, 1, 2, 2, 3, 0, 4, 2]; |
| 81 | + assertEquals(easy.removeElement(nums, 2), 5); |
| 82 | + assertArrayIncludes(nums.slice(0, 5), [0, 1, 4, 0, 3]) |
| 83 | +}); |
| 84 | + |
| 85 | +Deno.test(function findTheIndexOfTheFirstOccurrenceInAStringTest() { |
| 86 | + assertEquals( |
| 87 | + easy.findTheIndexOfTheFirstOccurrenceInAString("sadbutsad", "sad"), |
| 88 | + 0, |
| 89 | + ); |
| 90 | + assertEquals( |
| 91 | + easy.findTheIndexOfTheFirstOccurrenceInAString("leetcode", "leeto"), |
| 92 | + -1, |
| 93 | + ); |
| 94 | +}); |
| 95 | + |
| 96 | +Deno.test(function searchInsertPositionTest() { |
| 97 | + assertEquals(easy.searchInsertPosition([1, 3, 5, 6], 5), 2); |
| 98 | + assertEquals(easy.searchInsertPosition([1, 3, 5, 6], 2), 1); |
| 99 | + assertEquals(easy.searchInsertPosition([1, 3, 5, 6], 7), 4); |
| 100 | +}); |
0 commit comments