Last active
May 15, 2025 07:20
-
-
Save untainsYD/a01e6e7652cdf24594d6125a101c801f to your computer and use it in GitHub Desktop.
Task7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package lab4; | |
import lab4.container.IndexedArray; | |
import java.util.Arrays; | |
import java.util.List; | |
/** | |
* Тестування узагальненого класу IndexedArray | |
*/ | |
public class Task7 { | |
public static void main(String[] args) { | |
// Тестування масиву з додатними індексами | |
testPositiveIndices(); | |
// Тестування масиву з від'ємними індексами | |
testNegativeIndices(); | |
// Тестування масиву зі змішаними індексами | |
testMixedIndices(); | |
// Тестування методів з інтерфейсу Collection | |
testCollectionMethods(); | |
// Тестування граничних випадків | |
testEdgeCases(); | |
} | |
/** | |
* Тестування масиву з додатними індексами | |
*/ | |
private static void testPositiveIndices() { | |
System.out.println("=== Тестування масиву з додатними індексами ==="); | |
// Створення масиву з індексами від 1 до 5 | |
IndexedArray<String> array = new IndexedArray<>(1, 5); | |
// Заповнення масиву | |
array.set(1, "Один"); | |
array.set(2, "Два"); | |
array.set(3, "Три"); | |
array.set(4, "Чотири"); | |
array.set(5, "П'ять"); | |
// Виведення масиву | |
System.out.println("Масив: " + array); | |
// Отримання елементів за індексами | |
System.out.println("Елемент з індексом 1: " + array.get(1)); | |
System.out.println("Елемент з індексом 3: " + array.get(3)); | |
System.out.println("Елемент з індексом 5: " + array.get(5)); | |
// Зміна елементів | |
System.out.println("\nЗміна елемента з індексом 2 на 'ДВА'"); | |
array.set(2, "ДВА"); | |
System.out.println("Масив після зміни: " + array); | |
// Пошук елементів | |
System.out.println("\nІндекс елемента 'Три': " + array.indexOf("Три")); | |
System.out.println("Індекс елемента 'Шість': " + array.indexOf("Шість")); | |
System.out.println(); | |
} | |
/** | |
* Тестування масиву з від'ємними індексами | |
*/ | |
private static void testNegativeIndices() { | |
System.out.println("=== Тестування масиву з від'ємними індексами ==="); | |
// Створення масиву з індексами від -3 до -1 | |
IndexedArray<Integer> array = new IndexedArray<>(-3, -1); | |
// Заповнення масиву | |
array.set(-3, 10); | |
array.set(-2, 20); | |
array.set(-1, 30); | |
// Виведення масиву | |
System.out.println("Масив: " + array); | |
// Отримання елементів за індексами | |
System.out.println("Елемент з індексом -3: " + array.get(-3)); | |
System.out.println("Елемент з індексом -1: " + array.get(-1)); | |
// Пошук елементів | |
System.out.println("\nІндекс елемента 20: " + array.indexOf(20)); | |
System.out.println("Індекс елемента 40: " + array.indexOf(40)); | |
System.out.println(); | |
} | |
/** | |
* Тестування масиву зі змішаними індексами | |
*/ | |
private static void testMixedIndices() { | |
System.out.println("=== Тестування масиву зі змішаними індексами ==="); | |
// Створення масиву з індексами від -2 до 2 | |
IndexedArray<Double> array = new IndexedArray<>(-2, 2); | |
// Заповнення масиву | |
array.set(-2, 1.1); | |
array.set(-1, 2.2); | |
array.set(0, 3.3); | |
array.set(1, 4.4); | |
array.set(2, 5.5); | |
// Виведення масиву | |
System.out.println("Масив: " + array); | |
// Отримання елементів за індексами | |
System.out.println("Елемент з індексом -2: " + array.get(-2)); | |
System.out.println("Елемент з індексом 0: " + array.get(0)); | |
System.out.println("Елемент з індексом 2: " + array.get(2)); | |
// Пошук елементів | |
System.out.println("\nІндекс елемента 3.3: " + array.indexOf(3.3)); | |
System.out.println(); | |
} | |
/** | |
* Тестування методів з інтерфейсу Collection | |
*/ | |
private static void testCollectionMethods() { | |
System.out.println("=== Тестування методів з інтерфейсу Collection ==="); | |
// Створення масиву з існуючою колекцією | |
List<String> list = Arrays.asList("A", "B", "C", "D", "E"); | |
IndexedArray<String> array = new IndexedArray<>(10, 14, list); | |
System.out.println("Масив, створений з колекції: " + array); | |
System.out.println("Розмір масиву: " + array.size()); | |
System.out.println("Масив містить 'C': " + array.contains("C")); | |
System.out.println("Масив містить 'Z': " + array.contains("Z")); | |
// Перетворення на звичайний масив | |
Object[] objects = array.toArray(); | |
System.out.println("Перетворення на масив: " + Arrays.toString(objects)); | |
// Використання ітератора | |
System.out.println("\nПеребір елементів за допомогою ітератора:"); | |
for (String s : array) { | |
System.out.println(" - " + s); | |
} | |
System.out.println(); | |
} | |
/** | |
* Тестування граничних випадків | |
*/ | |
private static void testEdgeCases() { | |
System.out.println("=== Тестування граничних випадків ==="); | |
try { | |
// Створення масиву з неправильним діапазоном індексів | |
IndexedArray<String> array = new IndexedArray<>(5, 3); | |
System.out.println("Масив створено: " + array); // Ця стрічка не повинна виконатись | |
} catch (IllegalArgumentException e) { | |
System.out.println("Очікувана помилка при створенні масиву з неправильним діапазоном: " + e.getMessage()); | |
} | |
// Масив з одним елементом | |
IndexedArray<Integer> singleElementArray = new IndexedArray<>(0, 0, 42); | |
System.out.println("\nМасив з одним елементом: " + singleElementArray); | |
// Доступ за межами діапазону | |
IndexedArray<String> array = new IndexedArray<>(1, 3, "A", "B", "C"); | |
try { | |
String element = array.get(0); // Спроба доступу за індексом поза діапазоном | |
System.out.println("Елемент отримано: " + element); // Ця стрічка не повинна виконатись | |
} catch (IndexOutOfBoundsException e) { | |
System.out.println("\nОчікувана помилка при доступі за індексом поза діапазоном: " + e.getMessage()); | |
} | |
try { | |
String element = array.get(4); // Спроба доступу за індексом поза діапазоном | |
System.out.println("Елемент отримано: " + element); // Ця стрічка не повинна виконатись | |
} catch (IndexOutOfBoundsException e) { | |
System.out.println("Очікувана помилка при доступі за індексом поза діапазоном: " + e.getMessage()); | |
} | |
System.out.println(); | |
// Тестування неперевизначених операцій | |
try { | |
array.add("D"); // Спроба додати елемент | |
System.out.println("Елемент додано"); // Ця стрічка не повинна виконатись | |
} catch (UnsupportedOperationException e) { | |
System.out.println("Очікувана помилка при спробі додати елемент: " + e.getMessage()); | |
} | |
try { | |
array.remove(1); // Спроба видалити елемент | |
System.out.println("Елемент видалено"); // Ця стрічка не повинна виконатись | |
} catch (UnsupportedOperationException e) { | |
System.out.println("Очікувана помилка при спробі видалити елемент: " + e.getMessage()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment