Over on MeLinkedInstaMyFaceInGramSpaceBookWe, my friend Brian commented “Cool! (Whatever it was exactly you did!!!)” about my work issue [1]. Rereading that post, I think I can clarify a bit what I did. But first, a disclaimer: I'm not revealing any personal information here as all the data for the regression test is randomly generated. Names, numbers, it's all generated data.
So I ran the test and the output from that is a file that looks like (feature names changed to protect me):
ERR CNAM feature8 failed: wanted "VINCENZA GALJOUR" got "" testcase = { id = "3.0037", orig = { number = "2012013877", person = { business = "-", first = "VINCENZA", name = "VINCENZA GALJOUR", last = "GALJOUR", }, feature9 = false, cnam = true, extcnam = false, feature4 = true, feature10 = false, feature7 = false, feature8 = true, }, term = { feature10 = true, feature1 = false, feature2 = false, feature3 = false, feature4 = true, feature5 = false, feature6 = false, number = "6012013877", feature7 = false, feature8 = false, }, } ERR CNAM feature8 failed: wanted "TERINA SCHUPP" got "" testcase = { id = "3.0039", orig = { number = "2012013879", person = { business = "-", first = "TERINA", name = "TERINA SCHUPP", last = "SCHUPP", }, feature9 = false, cnam = true, extcnam = false, feature4 = true, feature10 = false, feature7 = false, feature8 = true, }, term = { feature10 = true, feature1 = false, feature2 = false, feature3 = false, feature4 = true, feature5 = false, feature6 = false, number = "6012013879", feature7 = false, feature8 = false, }, }
Since the regression test is written in Lua [2], I found it easy to just dump the structure holding the test data to the file, given I already have have a function to do so [3]. I also print out what failed just before the data for that particular test case. The code that prints the structure outputs valid Lua code. All I changed was adding an array declaration around the output, turned the error message into a comment, and changed testcase to a valid array index:
testcase = { -- ERR CNAM feature8 failed: wanted "VINCENZA GALJOUR" got "" [1] = { id = "3.0037", orig = { number = "2012013877", person = { business = "-", first = "VINCENZA", name = "VINCENZA GALJOUR", last = "GALJOUR", }, feature9 = false, cnam = true, extcnam = false, feature4 = true, feature10 = false, feature7 = false, feature8 = true, }, term = { feature10 = true, feature1 = false, feature2 = false, feature3 = false, feature4 = true, feature5 = false, feature6 = false, number = "6012013877", feature7 = false, feature8 = false, }, } -- ERR CNAM feature8 failed: wanted "TERINA SCHUPP" got "" [2] = { id = "3.0039", orig = { number = "2012013879", person = { business = "-", first = "TERINA", name = "TERINA SCHUPP", last = "SCHUPP", }, feature9 = false, cnam = true, extcnam = false, feature4 = true, feature10 = false, feature7 = false, feature8 = true, }, term = { feature10 = true, feature1 = false, feature2 = false, feature3 = false, feature4 = true, feature5 = false, feature6 = false, number = "6012013879", feature7 = false, feature8 = false, }, } }
That way, I can verify my hypothesis with some simple Lua code:
dofile "errorlog.txt" for _,result in ipairs(testcase) do if not (result.feature10 and (result.feature8 or result.feature4)) then print("hypothesis failed") end end