Beispiel #1
0
        public PageSelector(IMongoCollection <SitePage> pages, IRandomSelector randomSelector, string specialDayName, int maxPagesForRandomSelection)
        {
            if (maxPagesForRandomSelection <= 0)
            {
                throw new ArgumentException("maxPagesForRandomSelection must be greater than zero", nameof(maxPagesForRandomSelection));
            }

            _Pages                      = pages ?? throw new ArgumentNullException(nameof(pages));
            _RandomSelector             = randomSelector ?? throw new ArgumentNullException(nameof(randomSelector));
            _SpecialDayName             = specialDayName;       //может быть null если сегодня не специальный день (Хеллоуин, Рождество)
            _MaxPagesForRandomSelection = maxPagesForRandomSelection;
        }
 public SupportScheduler(
     ICalendar calendar,
     ISupportScheduleRepository supportScheduleRepository,
     ISupportScheduleDateValidator supportScheduleDateValidator,
     ISupportCandidateSelector supportCandidateSelector,
     IRandomSelector randomSelector)
 {
     _calendar = calendar;
     _supportScheduleRepository    = supportScheduleRepository;
     _supportScheduleDateValidator = supportScheduleDateValidator;
     _supportCandidateSelector     = supportCandidateSelector;
     _randomSelector = randomSelector;
 }
Beispiel #3
0
        public NotTwittedPages(IMongoCollection <SitePage> pages, IRandomSelector randomSelector, string specialDayName, int topQueryCount)
        {
            _Pages          = pages ?? throw new ArgumentNullException(nameof(pages));
            _RandomSelector = randomSelector ?? throw new ArgumentNullException(nameof(randomSelector));

            _SpecialDayName = specialDayName;                   //этот может быть null если сейчас не "особый день"

            if (topQueryCount <= 0)
            {
                throw new ArgumentException("topQueryCount повинно бути більше ніж 0", nameof(topQueryCount));
            }

            _TopQueryCount = topQueryCount;
        }
Beispiel #4
0
        public NotTwittedAnimated(IMongoCollection <AnimatedImage> animatedImages, IRandomSelector randomSelector, int topQueryCount, IFolderFromURL folderFromURL, BlobName.IFormatter formatter)
        {
            _AnimatedImages = animatedImages ?? throw new ArgumentNullException(nameof(animatedImages));
            _RandomSelector = randomSelector ?? throw new ArgumentNullException(nameof(randomSelector));

            if (topQueryCount <= 0)
            {
                throw new ArgumentException("topQueryCount повинно бути більше ніж 0", nameof(topQueryCount));
            }

            _TopQueryCount = topQueryCount;

            _FolderFromURL = folderFromURL ?? throw new ArgumentNullException(nameof(folderFromURL));
            _Formatter     = formatter ?? throw new ArgumentNullException(nameof(formatter));
        }
Beispiel #5
0
        void TestStaticSelector()
        {
            System.Random r = new System.Random();

            RandomSelectorBuilder <float> builder = new RandomSelectorBuilder <float>();

            // add items
            // pair (item, unnormalized probability)
            for (int i = 0; i < 32; i++)
            {
                builder.Add(i, Mathf.Sqrt(i + 1));
            }

            //build with seed 42
            IRandomSelector <float> selector = builder.Build(42);

            string print = "";

            for (int i = 0; i < 100; i++)
            {
                print += i.ToString() + ". " + selector.SelectRandomItem() + "\n";
            }

            Debug.Log(print);

            /// LONG version, to test binary search
            // add items
            // pair (item, unnormalized probability)
            for (int i = 0; i < 1024; i++)
            {
                builder.Add(i, Mathf.Sqrt(i + 1));
            }

            //build with seed 42
            IRandomSelector <float> longSelector = builder.Build(42);

            // just run 10000 tests, should be enough
            for (int i = 0; i < 10000; i++)
            {
                longSelector.SelectRandomItem();
            }

            // wont print long version, would spam console too much
        }
Beispiel #6
0
 public Handler(IMapper mapper, DrawManagerDbContext context, IRandomSelector randomSelector)
 {
     _mapper         = mapper;
     _context        = context;
     _randomSelector = randomSelector;
 }
Beispiel #7
0
 public SpecialDaySelector(IDateSupply dateSupply, IRandomSelector randomSelector)
 {
     _DateSupply     = dateSupply ?? throw new ArgumentNullException(nameof(dateSupply));
     _RandomSelector = randomSelector ?? throw new ArgumentNullException(nameof(randomSelector));
 }