MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 174 lines 6.0 kB view raw
1// Test Array methods functionality 2 3console.log("=== Array Methods Tests ===\n"); 4 5// Test 1: push and pop (existing) 6console.log("Test 1: push() and pop()"); 7let arr1 = [1, 2, 3]; 8console.log(" Initial:", arr1); 9arr1.push(4); 10console.log(" After push(4):", arr1); 11arr1.push(5, 6); 12console.log(" After push(5, 6):", arr1); 13let popped = arr1.pop(); 14console.log(" Popped value:", popped); 15console.log(" After pop():", arr1); 16 17// Test 2: slice 18console.log("\nTest 2: slice()"); 19let arr2 = [10, 20, 30, 40, 50]; 20console.log(" Original:", arr2); 21console.log(" slice(1, 3):", arr2.slice(1, 3)); 22console.log(" slice(2):", arr2.slice(2)); 23console.log(" slice(-2):", arr2.slice(-2)); 24console.log(" slice(0, -2):", arr2.slice(0, -2)); 25console.log(" slice(-4, -1):", arr2.slice(-4, -1)); 26console.log(" Original unchanged:", arr2); 27 28// Test 3: join 29console.log("\nTest 3: join()"); 30let arr3 = ["apple", "banana", "cherry"]; 31console.log(" Array:", arr3); 32console.log(" join(', '):", arr3.join(", ")); 33console.log(" join(' - '):", arr3.join(" - ")); 34console.log(" join(''):", arr3.join("")); 35console.log(" join():", arr3.join()); 36 37let numbers = [1, 2, 3, 4, 5]; 38console.log(" Numbers:", numbers); 39console.log(" join('-'):", numbers.join("-")); 40 41// Test 4: includes 42console.log("\nTest 4: includes()"); 43let arr4 = [1, 2, 3, 4, 5]; 44console.log(" Array:", arr4); 45console.log(" includes(3):", arr4.includes(3)); 46console.log(" includes(6):", arr4.includes(6)); 47console.log(" includes(1):", arr4.includes(1)); 48console.log(" includes(5):", arr4.includes(5)); 49console.log(" includes(0):", arr4.includes(0)); 50 51// Test 5: includes with different types 52console.log("\nTest 5: includes() with different types"); 53let mixed = [1, "hello", true, false, 42]; 54console.log(" Array:", mixed); 55console.log(" includes(1):", mixed.includes(1)); 56console.log(" includes('hello'):", mixed.includes("hello")); 57console.log(" includes('Hello'):", mixed.includes("Hello")); 58console.log(" includes(true):", mixed.includes(true)); 59console.log(" includes(false):", mixed.includes(false)); 60console.log(" includes(42):", mixed.includes(42)); 61console.log(" includes(0):", mixed.includes(0)); 62 63// Test 6: Combining methods 64console.log("\nTest 6: Combining array methods"); 65let data = [10, 20, 30, 40, 50, 60, 70]; 66console.log(" Original:", data); 67let subset = data.slice(2, 5); 68console.log(" slice(2, 5):", subset); 69console.log(" Joined:", subset.join(" -> ")); 70console.log(" includes(40):", subset.includes(40)); 71console.log(" includes(10):", subset.includes(10)); 72 73// Test 7: Building CSV 74console.log("\nTest 7: Building CSV"); 75let headers = ["Name", "Age", "City"]; 76let row1 = ["Alice", "25", "NYC"]; 77let row2 = ["Bob", "30", "LA"]; 78console.log(" " + headers.join(",")); 79console.log(" " + row1.join(",")); 80console.log(" " + row2.join(",")); 81 82// Test 8: Array manipulation 83console.log("\nTest 8: Array manipulation"); 84let queue = []; 85console.log(" Initial queue:", queue); 86queue.push("task1"); 87queue.push("task2"); 88queue.push("task3"); 89console.log(" After adding tasks:", queue); 90let first = queue.slice(0, 1); 91console.log(" First task:", first); 92let remaining = queue.slice(1); 93console.log(" Remaining:", remaining); 94 95// Test 9: Finding elements 96console.log("\nTest 9: Finding elements"); 97let items = ["apple", "banana", "cherry", "date"]; 98console.log(" Items:", items); 99if (items.includes("banana")) { 100 console.log(" Found 'banana' in the list"); 101} 102if (!items.includes("grape")) { 103 console.log(" 'grape' not found in the list"); 104} 105 106// Test 10: Slice for copy 107console.log("\nTest 10: Copying array with slice"); 108let original = [1, 2, 3, 4, 5]; 109let copy = original.slice(); 110console.log(" Original:", original); 111console.log(" Copy:", copy); 112copy.push(6); 113console.log(" After push to copy:", copy); 114console.log(" Original unchanged:", original); 115 116// Test 11: Working with ranges 117console.log("\nTest 11: Working with ranges"); 118let range = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 119console.log(" Full range:", range); 120console.log(" First 3:", range.slice(0, 3)); 121console.log(" Last 3:", range.slice(-3)); 122console.log(" Middle:", range.slice(3, 7)); 123 124// Test 12: Edge cases 125console.log("\nTest 12: Edge cases"); 126let empty = []; 127console.log(" Empty array:", empty); 128console.log(" slice():", empty.slice()); 129console.log(" join(','):", "'" + empty.join(",") + "'"); 130console.log(" includes(1):", empty.includes(1)); 131let popped_empty = empty.pop(); 132console.log(" pop() on empty:", popped_empty); 133 134let single = [42]; 135console.log(" Single element [42]:"); 136console.log(" slice():", single.slice()); 137console.log(" join():", single.join(",")); 138console.log(" includes(42):", single.includes(42)); 139console.log(" includes(0):", single.includes(0)); 140 141// Test 13: Practical example - path segments 142console.log("\nTest 13: Path processing"); 143let pathSegments = ["home", "user", "documents", "file.txt"]; 144console.log(" Segments:", pathSegments); 145let path = "/" + pathSegments.join("/"); 146console.log(" Path:", path); 147let filename = pathSegments.slice(-1); 148console.log(" Filename:", filename); 149let directory = pathSegments.slice(0, -1); 150console.log(" Directory parts:", directory); 151 152// Test 14: Data filtering (manual) 153console.log("\nTest 14: Manual filtering"); 154let scores = [85, 92, 78, 95, 88, 73, 91]; 155console.log(" All scores:", scores); 156let highScores = []; 157for (let i = 0; i < scores.length; i++) { 158 if (scores[i] >= 90) { 159 highScores.push(scores[i]); 160 } 161} 162console.log(" High scores (>= 90):", highScores); 163console.log(" Joined:", highScores.join(", ")); 164 165// Test 15: Checking membership 166console.log("\nTest 15: Membership checking"); 167let allowedUsers = ["admin", "user1", "user2", "guest"]; 168let username = "user1"; 169console.log(" Allowed users:", allowedUsers); 170console.log(" Check '" + username + "':", allowedUsers.includes(username)); 171username = "hacker"; 172console.log(" Check '" + username + "':", allowedUsers.includes(username)); 173 174console.log("\n=== All tests completed ===");