Opened 3 years ago

Closed 3 years ago

#742 closed ожидается проверка (задача сдана)

WW_linq Panenkov lab_14

Reported by: Semyon Panenkov Owned by: Антон Филатов
Component: WW_linq Version: 2.0
Keywords: Cc:

Description


Change History (5)

comment:1 Changed 3 years ago by Антон Филатов

Type: ожидается проверкаожидаются исправления

ошибка при сборке cmake

CMake Error at CMakeLists.txt:8 (add_executable):
  The target name "test" is reserved or not valid for certain CMake features,
  such as generator expressions, and may result in undefined behavior.

Корректность:

  • падает to_vector на пустом контейнере
  • падает copy_to на пустом контейнере
  • падает take(2) из пустого контейнера. Формально он может падать на этом, хотя взять два из пустого и вернуть пустой (та логика, которая задумана тестами) звучит довольно справедливо
  • падает drop, если число больше размера контейнера. Тут тоже спорный вопрос. Сделайте, чтобы тесты проходили - чтобы не падало. Кстати, drop(0) из пустого тоже падает
  • падают также тесты на until, where и select, но здесь мне трудно из тестов вычленить конкретную причину, пока не пофикшены предыдущие энумераторы. Попробуйте поискать сами. Если не найдёте - пишите, будем вместе внимательно дебагать вашу программу на моих тестах, чтобы выяснить причину

По стилю, кажется, всё ок, но как же страшно оно без наследования выглядит
4/10

comment:2 Changed 3 years ago by Semyon Panenkov

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Да не так уж и страшно. Практически так же, только чуть больше шаблонных параметров. Я думал, будет страшнее.

comment:3 Changed 3 years ago by Антон Филатов

Type: ожидается проверкаожидаются исправления

Всё почти ок

Падает until.

    auto xs = std::vector<int>{10, 20, 30};
    auto res = from(xs.begin(), xs.end()).until([](int x) {
      assert(x == 10 || x == 20 || x == 30);
      return false;
    }).to_vector();
    assert((std::vector<int>{10, 20, 30}) == res);

И вот на таком глупом тесте ругается валгринд:

    auto xs = std::vector<int>{9, 4, 8, 1, -3, 8, 7};
    auto res = to_stream(xs).until([](int x) { return 1234 < x; }).to_vector();
    assert((std::vector<int>{9, 4, 8, 1, -3, 8, 7}) == res);

9/10

comment:4 Changed 3 years ago by Semyon Panenkov

Type: ожидаются исправленияожидается проверка

Думал, что дед в субботу...

comment:5 Changed 3 years ago by Антон Филатов

Resolution: задача сдана
Status: assignedclosed

10/10

Note: See TracTickets for help on using tickets.