diff --git a/Dynamic-Programming/MaxNonAdjacentSum.js b/Dynamic-Programming/MaxNonAdjacentSum.js index 7c04f5f351..296d30ecd7 100644 --- a/Dynamic-Programming/MaxNonAdjacentSum.js +++ b/Dynamic-Programming/MaxNonAdjacentSum.js @@ -5,7 +5,7 @@ function maximumNonAdjacentSum(nums) { * :return: The maximum non-adjacent sum */ - if (nums.length < 0) return 0 + if (nums.length === 0) return 0 let maxIncluding = nums[0] let maxExcluding = 0 diff --git a/Dynamic-Programming/tests/MaxNonAdjacentSum.test.js b/Dynamic-Programming/tests/MaxNonAdjacentSum.test.js new file mode 100644 index 0000000000..67385124ab --- /dev/null +++ b/Dynamic-Programming/tests/MaxNonAdjacentSum.test.js @@ -0,0 +1,21 @@ +import { maximumNonAdjacentSum } from '../MaxNonAdjacentSum' + +describe('maximumNonAdjacentSum', () => { + it('should return 0 for an empty array', () => { + expect(maximumNonAdjacentSum([])).toBe(0) + }) + + it('should return the single element for a one-element array', () => { + expect(maximumNonAdjacentSum([5])).toBe(5) + }) + + it('should compute the maximum non-adjacent sum', () => { + expect(maximumNonAdjacentSum([1, 2, 3])).toBe(4) + expect(maximumNonAdjacentSum([1, 5, 3, 7, 2, 2, 6])).toBe(18) + expect(maximumNonAdjacentSum([499, 500, -3, -7, -2, -2, -6])).toBe(500) + }) + + it('should return 0 when all elements are negative', () => { + expect(maximumNonAdjacentSum([-1, -5, -3, -7, -2, -2, -6])).toBe(0) + }) +})