From 34ae67a1e85842bc3ce99de792acf2e982d370b4 Mon Sep 17 00:00:00 2001 From: baraah Date: Tue, 10 Feb 2026 22:26:41 +0100 Subject: [PATCH] first commit done --- task-1/count-above-threshold.js | 14 ++++++++ task-2/calculateAverage.js | 2 ++ task-2/calculateAverage.test.js | 33 +++++++++++++++++ task-3/count-vowels-debug.js | 17 +++++---- task-4/search-experiment.js | 63 ++++++++++++++++++++++++++++++++- 5 files changed, 122 insertions(+), 7 deletions(-) create mode 100644 task-2/calculateAverage.test.js diff --git a/task-1/count-above-threshold.js b/task-1/count-above-threshold.js index 7cf0418..b27d98d 100644 --- a/task-1/count-above-threshold.js +++ b/task-1/count-above-threshold.js @@ -1 +1,15 @@ //Your code here +function countAboveThreshold(numbers, threshold) { + let count = 0; + + for (let i=0;i threshold){ + count++; + } + } + return count; +} + +console.log(countAboveThreshold([1,5,10,3],4));// returns 2 +console.log(countAboveThreshold([7,8,9],10));// returns 0 +console.log(countAboveThreshold([],5));// returns 0 \ No newline at end of file diff --git a/task-2/calculateAverage.js b/task-2/calculateAverage.js index 097ee0a..b403e35 100644 --- a/task-2/calculateAverage.js +++ b/task-2/calculateAverage.js @@ -18,3 +18,5 @@ export function calculateAverage(numbers) { return sum / numbers.length; } + + diff --git a/task-2/calculateAverage.test.js b/task-2/calculateAverage.test.js new file mode 100644 index 0000000..3e10271 --- /dev/null +++ b/task-2/calculateAverage.test.js @@ -0,0 +1,33 @@ +import {describe , it , expect} from "vitest"; +import {calculateAverage} from "./calculateAverage"; + +describe("calculateAverage",() =>{ + + it("returns the average for an array of valid numbers", ()=>{ + const result = calculateAverage([2,4,6]); + expect(result).toBe(4); + }); + + it("returns the same number when array has one element", ()=>{ + const result = calculateAverage([5]); + expect(result).toBe(5); + }); + + it("returns null when the array is empty", ()=>{ + const result = calculateAverage([]); + expect(result).toBeNull(); + }); + + it("returns null when input is not an array", ()=>{ + expect(calculateAverage("123")).toBeNull(); + expect(calculateAverage(null)).toBeNull(); + expect(calculateAverage(123)).toBeNull(); + + }); + + it("returns null when the array contains a non-number value", ()=>{ + const result = calculateAverage([1,2,"3"]); + expect(result).toBeNull(); + }); + +}); \ No newline at end of file diff --git a/task-3/count-vowels-debug.js b/task-3/count-vowels-debug.js index 1ce292b..92776df 100644 --- a/task-3/count-vowels-debug.js +++ b/task-3/count-vowels-debug.js @@ -1,13 +1,14 @@ function countVowels(text) { let count = 0; - for (let i = 0; i <= text.length; i++) { + const lower = text.toLowerCase(); + for (let i = 0; i < lower.length; i++) { if ( - text[i] === "a" || - text[i] === "e" || - text[i] === "i" || - text[i] === "o" || - text[i] === "u" + lower[i] === "a" || + lower[i] === "e" || + lower[i] === "i" || + lower[i] === "o" || + lower[i] === "u" ) { count++; } @@ -15,3 +16,7 @@ function countVowels(text) { return count; } + +console.log(countVowels("hello"));// returns 2 +console.log(countVowels("javascript"));// returns 3 +console.log(countVowels(""));// returns 0 diff --git a/task-4/search-experiment.js b/task-4/search-experiment.js index 63c189a..1e596e9 100644 --- a/task-4/search-experiment.js +++ b/task-4/search-experiment.js @@ -1,3 +1,64 @@ // Write your code here // Use generateBigArray to create a big array numbers. -// Example: generateBigArray(1000000) will create an array of 1 million numbers. \ No newline at end of file +// Example: generateBigArray(1000000) will create an array of 1 million numbers. + +import generateBigArray from "./bigArray.js" + +function linearSearch(array , target){ + for(let i=0; i < array.length; i++){ + if(array[i] === target){ + return i; + } + } + return -1; +} + +function binarySearch(array ,target){ + let left=0; + let right = array.length -1; + + while (left<= right){ + const middle = left + Math.floor((right - left)/ 2); + + if (array[middle] target){ + right =middle -1; + } else{ + return middle; + } + } + return -1; +} + +const target = 123456789; + +const array1 =generateBigArray(1000); +const array2 =generateBigArray(100000); +const array3 =generateBigArray(10000000); + +console.time("linear search 1k"); +linearSearch(array1, target); +console.timeEnd("linear search 1k"); + +console.time("linear search 100k"); +linearSearch(array2, target); +console.timeEnd("linear search 100k"); + +console.time("linear search 10m"); +linearSearch(array3, target); +console.timeEnd("linear search 10m"); + +console.time("binary search 1k"); +linearSearch(array1, target); +console.timeEnd("binary search 1k"); + +console.time("binary search 100k"); +linearSearch(array2, target); +console.timeEnd("binary search 100k"); + +console.time("binary search 10m"); +linearSearch(array3, target); +console.timeEnd("binary search 10m"); + +