Oh dear Jesus. I just read the tests on the Ferguson #COVID19 model.

If I wrote code like this, with such excuses for tests, I'd get my ass fired, and you know what? I'd deserve it, too.

(thread on #coronavirus modeling)
So, one sentence summary of software testing: you ordinarily want what is called unit testing (testing that each part of your code behaves as it should) and behavioural testing (testing that given an input you get the right kind of output). We have NONE OF THIS.
There are exactly zero unit tests here. None. Zilch. The code is in C++, and there *are* good testing frameworks for C++ (and plenty of talented testing engineers). And yes, you CAN unit test stochastic code, too. That's a lame excuse.
Worst, the test is actually written in Python over code that's in C++. Why? Because the test is what we call a 'smoke test' – all it does is make sure the code produces an output file. Does it check the model? Oh, hell naw. It's pathetic.
At this point, I've got to ask a VERY serious question: is there ANYONE within Imperial with the slightest semblance of understanding how bad this is? If there is, their conduct borders on fraudulent, and if there isn't, the whole unit should never have been trusted.
I am, to make this clear, not mad at anyone personally, nor do I have an axe to grind about lockdowns. I *am* mad that a taxpayer funded (MRC) research unit has gotten away with this amateur hour for over a decade.
I am also somewhat personally affected. My first epidemiology job was MRC funded. I was lucky – my boss there took me under her wings and taught me how to do proper research work and how to write solid, reproducible code. This was in the late 2000s.
A lot of my friends work on MRC funded projects. This is NOT the standard the MRC is known for. This is not how we do things. I couldn't care less about Ferguson's booty call – he should have resigned for this abomination of a model.
You can follow @chrisvcsefalvay.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: