Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Golang
/

Сортировка срезов

Golang: Сортировка срезов

Задание

Коммерческий опыт и Трудоустройство

Полезное

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном телеграм-сообществе
  1. Привет, Мир!
  2. Go, Go, Go
  3. Переменные
  4. Функции
  5. Логический тип
  6. Математика и числа
  7. Строки
  8. Полезные функции для строк
  9. Условные конструкции
  10. Альтернативная условная конструкция
  11. Константы
  12. Цикл For
  13. Структуры и методы в Go
  14. Генерация строк в циклах
  15. Указатели
  16. Возврат структур из функций
  17. Nil
  18. Преобразование типов
  19. Ошибки
  20. Анонимные функции (Лямбды)
  21. Массивы
  22. Срезы
  23. Цикл for и срезы
  24. Структуры в срезах
  25. Сравнение срезов
  26. Слайсы из срезов
  27. Множественные операции над слайсами
  28. Копирование срезов
  29. Передача срезов в функцию
  30. Сортировка срезов
  31. Карты
  32. Обход карт
  33. Хранение структур в картах
  34. Вложенные карты
  35. Практики использования карт
/
Программирование
/
Курс Golang
/

Сортировка срезов

Golang: Сортировка срезов

Задание

Коммерческий опыт и Трудоустройство

Полезное

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
Loading...
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

// Тесты
package solution

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestSortOrdersByCustomerID(t *testing.T) {
	tests := []struct {
		name     string
		input    []Order
		expected []Order
	}{
		{
			name: "Sort by CustomerID",
			input: []Order{
				{CustomerID: 3, Price: 200},
				{CustomerID: 1, Price: 300},
				{CustomerID: 2, Price: 100},
			},
			expected: []Order{
				{CustomerID: 1, Price: 300},
				{CustomerID: 2, Price: 100},
				{CustomerID: 3, Price: 200},
			},
		},
		{
			name: "Sort by CustomerID and price",
			input: []Order{
				{CustomerID: 2, Price: 300},
				{CustomerID: 2, Price: 100},
				{CustomerID: 1, Price: 500},
			},
			expected: []Order{
				{CustomerID: 1, Price: 500},
				{CustomerID: 2, Price: 100},
				{CustomerID: 2, Price: 300},
			},
		},
		{
			name:     "Empty slice",
			input:    []Order{},
			expected: []Order{},
		},
		{
			name:     "Single element",
			input:    []Order{{CustomerID: 1, Price: 100}},
			expected: []Order{{CustomerID: 1, Price: 100}},
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			result := SortOrdersByCustomerID(tt.input)
			assert.Equal(t, tt.expected, result)
			assert.Equal(t, tt.input, tt.input, "original slice should remain unchanged")
		})
	}
}
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →