public Neuron(IRnd rand, long index) { //Index = index; Output = new List <NRelation>(); State = rand.Next(NNet.MIN_INIT_STATE, NNet.MAX_INIT_STATE); SpikePeriod = rand.Next(NNet.MIN_SPIKE_PERIOD, NNet.MAX_SPIKE_PERIOD); }
public static IEnumerable <PaymentDTO> CreatePayments(AccountDTO[] accounts, PaymentStatus status, IRnd <string> recipientRnd, IRnd <int> countRnd, IRnd <float> amountRnd, IRnd <DateTime> startDateRnd, Func <DateTime> datetimeNow, IRnd <TimeSpan> intervalRnd, TitleRnd titleRnd) { foreach (var account in accounts) { var count = countRnd.Next(); for (int i = 0; i < count; i++) { var interval = intervalRnd.Next(); var startTimestamp = startDateRnd.Next(); var repayDiff = (int)((datetimeNow() - startTimestamp) / interval); var lastRepayTimestamp = startTimestamp + repayDiff * interval; yield return(new PaymentDTO { Id = Guid.NewGuid().ToString(), Name = titleRnd.Next(5), AccountId = account.Id, Amount = amountRnd.Next(), StartTimestamp = startTimestamp, LatestProcessingTimestamp = lastRepayTimestamp, Interval = interval, Status = (int)status, Recipient = recipientRnd.Next(account.Id) }); } } }
public static IRnd <B> Select <A, B>(this IRnd <A> source, Func <A, B> func) { return(new FromFunc <B>(tries => from a in source.Next(tries) select func(a) )); }
public static IRnd <C> SelectMany <A, B, C>(this IRnd <A> source, Func <A, IRnd <B> > func, Func <A, B, C> selector) { return(new FromFunc <C>(tries => { return from a in source.Next(tries) from b in func(a).Next(tries) select selector(a, b); })); }
private static float GetAmount(AccountDTO[] accounts, IRnd <float> rnd) { while (true) { var amount = (float)Math.Round(rnd.Next(), 2); if (accounts.Any(a => a.Balance > amount)) { return(amount); } } }
public static IEnumerable <CardDTO> CreateCards(AccountDTO[] accounts, IRnd <int> countRnd) { foreach (var account in accounts) { var count = countRnd.Next(); for (int i = 0; i < count; i++) { yield return new CardDTO { Id = Guid.NewGuid().ToString(), AccountId = account.Id, Number = CreateCardNumber() } } ; } }
public static IEnumerable <TransactionDTO> CreateTransactions(AccountDTO[] accounts, IRnd <string> recipientRnd, IRnd <int> countRnd, IRnd <DateTime> timestampRnd, IRnd <float> amountRnd, IRnd <string> titleRnd) { foreach (var account in accounts) { int count = countRnd.Next(); for (int i = 0; i < count; i++) { var debit = random.Next(0, 1) == 1; var sender = debit ? account.Id : recipientRnd.Next(account.Id); var recipient = !debit?recipientRnd.Next(account.Id) : account.Id; yield return(new TransactionDTO { Id = Guid.NewGuid().ToString(), Amount = amountRnd.Next(), Sender = sender, Timestamp = timestampRnd.Next(), Recipient = recipient, Title = titleRnd.Next() }); } } }
public static IEnumerable <(LoanDTO, PaymentDTO)> CreateLoans(AccountDTO[] loansAccounts, IRnd <int> countRnd, IRnd <float> totalRnd, LoanInstalmentsRnd instalmentsRnd, Rnd <int> paidInstalmentsRnd, IRnd <TimeSpan> intervalRnd, Func <DateTime> datetimeNow, IRnd <string> recipientRnd) { foreach (var account in loansAccounts) { var count = countRnd.Next(); for (int i = 0; i < count; i++) { var totalAmount = totalRnd.Next(); var instalments = instalmentsRnd.Next(totalAmount); paidInstalmentsRnd.Max = instalments; var paidInstalments = paidInstalmentsRnd.Next(); var paidAmount = (float)paidInstalments / instalments * totalAmount; var loan = new LoanDTO { Id = Guid.NewGuid().ToString(), Instalments = instalments, TotalAmount = totalAmount, PaidAmount = paidAmount, AccountId = account.Id }; var interval = intervalRnd.Next(); var start = datetimeNow() - interval * paidInstalments; var recipient = recipientRnd.Next(account.Id); var lastRepayTimestamp = start + interval * paidInstalments; var payment = new PaymentDTO { Id = Guid.NewGuid().ToString(), Name = $"Loan {loan.Id} payment", AccountId = account.Id, Amount = totalAmount / instalments, Interval = interval, StartTimestamp = start, LatestProcessingTimestamp = lastRepayTimestamp, Status = (int)PaymentStatus.ACTIVE, Recipient = recipient }; loan.PaymentId = payment.Id; yield return(loan, payment); } } }
public static IEnumerable <AccountDTO> CreateAccounts(UserDTO[] users, IRnd <int> countRnd, IRnd <float> balanceRnd) { foreach (var user in users) { var count = countRnd.Next(); for (int j = 0; j <= count; j++) { //var b = random.Next(balance.Min, balance.Max) + GetCents; var balance = balanceRnd.Next(); yield return(new AccountDTO { Id = Guid.NewGuid().ToString(), Balance = balance, Number = CreateAccountNumber(), UserId = user.Id }); } } }
private static RndResult <IEnumerable <A> > NoRepeat <A>(int count, int tries, IRnd <A> rnd) where A : IEquatable <A> { A last = default(A); A[] arr = new A[count]; for (int i = 0; i < count; i++) { var res = i == 0 ? rnd.Next(tries) : rnd.Where(a => !a.Equals(last)).Next(tries); if (!res.WasSuccessful) { return(new RndResult <IEnumerable <A> >()); } last = res.Result; arr[i] = last; } return(new RndResult <IEnumerable <A> >(arr)); }
public static IRnd <A> Where <A>(this IRnd <A> source, Func <A, bool> predicate) { return(new FromFunc <A>(tries => { for (int i = 0; i < tries; i++) { var ra = source.Next(1); if (!ra.WasSuccessful) { continue; } var a = ra.Result; if (predicate(a)) { return ra; } } return new RndResult <A>(); })); }
public static IEnumerable <TransactionDTO> CreateTransactions(CardDTO[] cards, IRnd <string> recipientRnd, IRnd <int> countRnd, IRnd <DateTime> timestampRnd, IRnd <float> amountRnd) { foreach (var card in cards) { int count = countRnd.Next(); for (int i = 0; i < count; i++) { var timestamp = timestampRnd.Next(); var amount = amountRnd.Next(); yield return(new TransactionDTO { Id = Guid.NewGuid().ToString(), Amount = amount, CardId = card.Id, Sender = card.AccountId, Timestamp = timestamp, Recipient = recipientRnd.Next(card.AccountId), Title = $"{timestamp} card usage for a transfer worth {amount} EUR." }); } } }
public static A Single <A>(this IRnd <A> rnd, int tries) { return(rnd.Next(tries).Result); }
public static A Single <A>(this IRnd <A> rnd) { return(rnd.Next(Sx.NumberTries).Result); }