Skip to content

Instantly share code, notes, and snippets.

@untainsYD
Last active May 15, 2025 07:20
Show Gist options
  • Save untainsYD/a01e6e7652cdf24594d6125a101c801f to your computer and use it in GitHub Desktop.
Save untainsYD/a01e6e7652cdf24594d6125a101c801f to your computer and use it in GitHub Desktop.
Task7
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