require_relative 'data_table'

data = [
  [1, "Alice", 25],
  [2, "Bob", 30],
  [3, "Charlie", 35]
]

data_table = DataTable.new(data)

puts "Количество строк: #{data_table.rows_count}" # Ожидаем 3
puts "Количество столбцов: #{data_table.columns_count}" # Ожидаем 3
puts "Элемент в строке 1, столбце 2: #{data_table.item(1, 2)}" # Ожидаем 30
puts "Элемент в строке 0, столбце 1: #{data_table.item(0, 1)}" # Ожидаем "Alice"
puts "Элемент за пределами таблицы: #{data_table.item(10, 10)}" # Ожидаем nil

items = [
  { id: 1, name: "Alice", age: 25 },
  { id: 2, name: "Bob", age: 30 },
  { id: 3, name: "Charlie", age: 35 }
]

data_list = DataList.new(items)

data_list.select(0)
data_list.select(2)
puts "Выбранные элементы: #{data_list.get_selected.inspect}"

begin
  data_list.get_names
rescue NotImplementedError => e
  puts "Ошибка: #{e.message}" # Ожидаем "Implement this method in a subclass"
end

begin
  data_list.get_data
rescue NotImplementedError => e
  puts "Ошибка: #{e.message}" # Ожидаем "Implement this method in a subclass"
end