Giter VIP home page Giter VIP logo

testtaskantiban's Introduction

Тестовое задание C# Flowsell.me

Реализовать Антибан систему

Нужно реализовать класс Antiban, чтобы он проходил все юнит тесты в AntibanTests.cs

Входные данные:

класс EventMessage, с полями:

  • номер_телефона
  • время когда пришло событие в систему
  • приоритет (0 - сервисные, 1 - рассылки)

Пример:

Предположим, что в систему пришли такие события:

  1. Номер1, 0, 12:00:00
  2. Номер2, 0, 12:01:00
  3. Номер1, 1, 12:01:25
  4. Номер2, 1, 12:01:35
  5. Номер1, 1, 12:01:50
  6. Номер2, 0, 12:02:00
  7. Номер1, 0, 12:02:01

То выходной порядок должен быть таким:

  1. Номер1, 12:00:00 (1)
  2. Номер2, 12:01:00 (2)
  3. Номер1, 12:01:25 (3)
  4. Номер2, 12:02:00 (4) - т.к. была отправка по этому номеру в 12:01:00, следующая отправка только через минуту по этому номеру
  5. Номер1, 12:02:25 (7) - т.к. предыдущая отправка по этому номеру была в 12:01:25, следующая отправка только через минуту по этому номеру
  6. Номер2, 12:03:00 (6) - т.к. предыдущая отправка по этому номеру будет в 12:02:00, следующая отправка только через минуту по этому номеру
  7. Номер1, 12:01:25 + 24 часа (5) - т.к. ранее уже была отправлена рассылка (приоритет = 1) по этому номеру, то следующая отправка по рассылка + 24 часа

Должны соблюдаться такие правила:

  • период между сообщениями на разные номера, должен быть не менее 10 сек. Для теста возьмем, что равно 10 сек
  • период между сообщениями на один номер, должен быть не менее 1 минуты. Для теста возьмем, что равно 1 минуте
  • период между сообщениями с приоритетом=1 на один номер, не менее 24 часа. Т.е. должна отправлять только одна рассылка в день на один номер.

В случае если юнит тесты некорректны, просим открыть Issue в этом репозитории

testtaskantiban's People

Contributors

kostennikovdanil avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.