![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
So, if you think you call a function in your code, and this function returns current time, or a random number... IT'S NOT A FUNCTION. Your code is function of "random number", or "time".
So, if your code is written as something that retrieves this kind of data, to test your code, you should provide that data. Not just today, but try the time, like 10 years from now. As to "random", You provide the randomness. If your code cannot be fixed to behave as a function of those inputs, make your "random stream" or "time stream" not hard-coded, but substitutable. Mockable. And mock it in your tests. MAKE SURE that you don't provide just happy-path data. Provide anything. A sequence of 100 numbers 4 for random. Time that is 10 years from now. Or even 30 yeas from now.
Make sure that your tests don't depend on anything. Because test Must Be Reproducible.
All these things, I know, are obvious to some, and not obvious to others.
So, if your code is written as something that retrieves this kind of data, to test your code, you should provide that data. Not just today, but try the time, like 10 years from now. As to "random", You provide the randomness. If your code cannot be fixed to behave as a function of those inputs, make your "random stream" or "time stream" not hard-coded, but substitutable. Mockable. And mock it in your tests. MAKE SURE that you don't provide just happy-path data. Provide anything. A sequence of 100 numbers 4 for random. Time that is 10 years from now. Or even 30 yeas from now.
Make sure that your tests don't depend on anything. Because test Must Be Reproducible.
All these things, I know, are obvious to some, and not obvious to others.
If you still have questions, ask. But don't argue. Because what I say is math. Unless you have another math (some people do), or another logic (there's plenty of them), please don't argue.
I'd be glad to see how all this changes if logic is e.g. linear.
Re: What to test in time-dependent function?
Date: 2020-08-24 08:06 pm (UTC)Разумеется. Если такой, правильно написанный, код - то и проблемы нету!
Re: What to test in time-dependent function?
Date: 2020-08-24 08:24 pm (UTC)Re: What to test in time-dependent function?
Date: 2020-08-24 09:21 pm (UTC)В целом да; но не всегда получается.
"Should provide that data"?
Date: 2020-08-24 10:03 pm (UTC)Re: "Should provide that data"?
Date: 2020-08-24 10:45 pm (UTC)There's no such thing as "nondeterministic function".
Nondeterministic function
Date: 2020-08-24 11:34 pm (UTC)Do you mean that your personal lexicon does not contain "nondeterministic function" concept?
~~~~~~~
https://www.google.com/search?q=%22nondeterministic+function%22
About 6,000 results
~~~~~~~
Re: Nondeterministic function
Date: 2020-08-24 11:39 pm (UTC)"almighty god allah" finds over 7m records. And? It's also in my personal lexicon.
Re: Nondeterministic function
Date: 2020-08-25 12:08 am (UTC)~~~~~~~~
https://www.google.com/search?q=%22almighty+god+allah%22
About 292,000 results
~~~~~~~~
You used "almighty god allah" without quotes in your search query...
> It's also in my personal lexicon
So you understand what people want to express when they write "Nondeterministic function"?
Then why do you refuse to use "Nondeterministic function" term to communicate that concept -- in order to clearly communicate your message?
"Nondeterministic function" is less ambiguous than "function".
Re: Nondeterministic function
Date: 2020-08-25 01:22 am (UTC)You seem to be seriously determined to teach me math.
Re: Nondeterministic function
Date: 2020-08-25 03:26 pm (UTC)