diff --git a/validation.py b/validation.py deleted file mode 100755 index cbebee98..00000000 --- a/validation.py +++ /dev/null @@ -1,1195 +0,0 @@ -test_sequence = ( - { - "concept_ids": [ - "[START]", - "year:2005", - "age:20", - "8532", - "0", - "VS", - "9203", - "200219", - "2007052", - "VE", - "W1", - "VS", - "9203", - "2006976", - "VE", - "M3", - "VS", - "9203", - "140214", - "4063814", - "VE", - "M6", - "VS", - "9203", - "2007052", - "4047791", - "440029", - "VE", - "W0", - "VS", - "9202", - "140214", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2010", - "age:77", - "8507", - "0", - "VS", - "9202", - "2414392", - "4150062", - "VE", - "W0", - "VS", - "9202", - "2211481", - "4150062", - "VE", - "W0", - "VS", - "9202", - "2211480", - "2211481", - "4150062", - "VE", - "LT", - "VS", - "9202", - "2211361", - "77670", - "VE", - "LT", - "VS", - "9202", - "2211361", - "77670", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2019", - "age:55", - "8507", - "0", - "VS", - "5083", - "320128", - "432867", - "433736", - "437827", - "764123", - "2414397", - "320128", - "437827", - "764123", - "VE", - "LT", - "VS", - "581477", - "2313814", - "2414398", - "320128", - "432867", - "437827", - "764123", - "VE", - "M2", - "VS", - "581477", - "2108115", - "2514528", - "320128", - "4193704", - "437827", - "764123", - "VE", - "W0", - "VS", - "581477", - "1307046", - "2313814", - "2414398", - "320128", - "4193704", - "437827", - "764123", - "VE", - "M4", - "VS", - "581477", - "2313814", - "2414398", - "320128", - "4193704", - "437827", - "764123", - "VE", - "W2", - "VS", - "581477", - "2414397", - "VE", - "W3", - "VS", - "581477", - "2108115", - "2414397", - "320128", - "4193704", - "437827", - "77670", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2008", - "age:79", - "8507", - "0", - "VS", - "9202", - "2313634", - "2313654", - "375545", - "439297", - "VE", - "M4", - "VS", - "9202", - "2313636", - "2313655", - "375545", - "439297", - "VE", - "LT", - "VS", - "9202", - "2313635", - "2313655", - "375545", - "380103", - "439297", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1998", - "age:2", - "8507", - "0", - "VS", - "9203", - "372328", - "42738971", - "VE", - "LT", - "VS", - "9203", - "25297", - "VE", - "LT", - "VS", - "9203", - "2514435", - "25297", - "440029", - "VE", - "LT", - "VS", - "9203", - "2514435", - "2514437", - "378253", - "VE", - "W0", - "VS", - "9203", - "2514435", - "378253", - "378253", - "378253", - "VE", - "LT", - "VS", - "9203", - "2514434", - "2514435", - "28060", - "VE", - "W0", - "VS", - "9203", - "2514435", - "25297", - "372328", - "380733", - "VE", - "LT", - "VS", - "9203", - "2514435", - "254761", - "257011", - "440029", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1991", - "age:46", - "8507", - "8552", - "VS", - "9203", - "77139", - "VE", - "LT", - "VS", - "9203", - "77670", - "VE", - "W0", - "VS", - "9201", - "321318", - "4142645", - "4195852", - "4205879", - "438791", - "320128", - "321318", - "42537729", - "VE", - "W0", - "VS", - "9203", - "320128", - "VE", - "LT", - "VS", - "9202", - "2414393", - "320128", - "VE", - "W3", - "VS", - "9202", - "2414397", - "320128", - "77670", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2002", - "age:42", - "8532", - "0", - "VS", - "9202", - "4306780", - "VE", - "LT", - "VS", - "9202", - "4306780", - "VE", - "LT", - "VS", - "9202", - "45773385", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1995", - "age:0", - "8507", - "8527", - "VS", - "9201", - "4014296", - "4014296", - "VE", - "LT", - "VS", - "9202", - "2414392", - "4088016", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2003", - "age:45", - "8532", - "0", - "VS", - "9202", - "4149084", - "VE", - "M6", - "VS", - "9202", - "4306780", - "VE", - "M2", - "VS", - "9202", - "4172857", - "VE", - "LT", - "VS", - "9202", - "45773385", - "VE", - "M6", - "VS", - "9202", - "45773385", - "VE", - "LT", - "VS", - "9202", - "2213244", - "45773385", - "VE", - "LT", - "VS", - "9202", - "2213244", - "45773385", - "VE", - "M2", - "VS", - "9202", - "2211826", - "4295261", - "77646", - "VE", - "LT", - "VS", - "9202", - "2211826", - "4295261", - "80502", - "VE", - "W1", - "VS", - "9202", - "2211826", - "80824", - "VE", - "LT", - "VS", - "9202", - "2211826", - "2211828", - "80502", - "VE", - "LT", - "VS", - "9202", - "2211809", - "42627987", - "VE", - "M11", - "VS", - "581477", - "2313814", - "2414392", - "312437", - "315078", - "77670", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2022", - "age:34", - "8507", - "8516", - "VS", - "5083", - "2414393", - "442588", - "VE", - "M1", - "VS", - "5083", - "2414392", - "442588", - "VE", - "W3", - "VS", - "5083", - "2414397", - "442588", - "VE", - "M1", - "VS", - "5083", - "2414398", - "313459", - "442588", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1988", - "age:2", - "8532", - "8516", - "VS", - "0", - "257011", - "VE", - "M4", - "VS", - "0", - "257011", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1998", - "age:17", - "8507", - "0", - "VS", - "9202", - "200219", - "VE", - "LT", - "VS", - "9202", - "137275", - "VE", - "W0", - "VS", - "9202", - "137275", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2015", - "age:62", - "8532", - "8527", - "VS", - "9202", - "1332418", - "1501700", - "2313814", - "2414393", - "320128", - "77670", - "VE", - "W3", - "VS", - "9202", - "2313819", - "2313869", - "2414397", - "77670", - "VE", - "W0", - "VS", - "9202", - "2313869", - "320128", - "77670", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2006", - "age:0", - "8532", - "0", - "VS", - "9201", - "42739011", - "2007893", - "VE", - "W0", - "VS", - "9202", - "4088016", - "VE", - "LT", - "VS", - "9203", - "140214", - "2514434", - "2514435", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1988", - "age:1", - "8507", - "0", - "VS", - "0", - "257011", - "VE", - "M5", - "VS", - "0", - "317009", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2019", - "age:16", - "8507", - "0", - "VS", - "9202", - "2414394", - "4254485", - "438409", - "442077", - "705944", - "705944", - "VE", - "W2", - "VS", - "9202", - "2314103", - "377091", - "VE", - "W0", - "VS", - "9202", - "2414398", - "4149904", - "438409", - "442077", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2020", - "age:17", - "8507", - "0", - "VS", - "581477", - "2108115", - "2414398", - "4267558", - "440076", - "VE", - "M4", - "VS", - "581477", - "2108115", - "2514399", - "4267558", - "440076", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2002", - "age:33", - "8532", - "0", - "VS", - "9203", - "42738971", - "44784105", - "81151", - "VE", - "W3", - "VS", - "9203", - "42738972", - "77139", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:2021", - "age:40", - "8532", - "0", - "VS", - "9203", - "2514435", - "VE", - "LT", - "VS", - "581477", - "2213244", - "2514520", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1996", - "age:7", - "8532", - "8516", - "VS", - "9203", - "257011", - "42738972", - "VE", - "LT", - "VS", - "9202", - "42738972", - "257011", - "VE", - "LT", - "VS", - "9202", - "2006977", - "4036803", - "4036803", - "VE", - "W0", - "VS", - "9203", - "2006977", - "4043371", - "VE", - "W0", - "VS", - "9202", - "2006977", - "4088016", - "VE", - "LT", - "VS", - "9202", - "4135174", - "4210151", - "VE", - "W0", - "VS", - "9202", - "4135174", - "VE", - "LT", - "VS", - "9203", - "2514435", - "372328", - "378253", - "VE", - ] - }, - { - "concept_ids": [ - "[START]", - "year:1996", - "age:7", - "8532", - "8516", - "VS", - "9203", - "257011", - "42738972", - "VE", - "LT", - "VS", - "9202", - "42738972", - "257011", - "VE", - "LT", - "VS", - "9202", - "2006977", - "4036803", - "4036803", - "VE", - "W0", - "VS", - "9203", - "2006977", - "4043371", - "VE", - "W0", - "VS", - "1234", - "VE", - "LT", - "VS", - "9202", - "4135174", - "4210151", - "VE", - "W0", - "VS", - "9202", - "4135174", - "VE", - "LT", - "VS", - "9203", - "2514435", - "372328", - "378253", - "VE", - ] - }, -) - -GENDER = ["0", "8532", "8507"] - -RACE = [ - "0", - """38003577.""", - """38003595.""", - """38003604.""", - """38003607.""", - """38003610.""", - """38003609.""", - """38003602.""", - """38003576.""", - """38003583.""", - """38003605.""", - """38003615.""", - """38003606.""", - """38003574.""", - """38003596.""", - """38003599.""", - """8515.""", - """38003586.""", - """38003585.""", - """38003594.""", - """38003573.""", - """38003593.""", - """38003600.""", - """38003584.""", - """38003581.""", - """38003597.""", - """38003591.""", - """8657.""", - """38003580.""", - """38003579.""", - """38003613.""", - """8516.""", - """38003612.""", - """38003598.""", - """38003614.""", - """38003603.""", - """38003582.""", - """38003616.""", - """38003575.""", - """38003608.""", - """38003601.""", - """38003589.""", - """8557.""", - """38003587.""", - """38003588.""", - """38003592.""", - """38003611.""", - """8527.""", - """38003578.""", - """38003572.""", - """38003590.""", -] - -VISITS = [ - "0", - "42898160", - "38004283", - "38004440", - "38004220", - "38004229", - "38004213", - "38004209", - "38004367", - "38004331", - "38003820", - "38004344", - "38004254", - "38004234", - "38004266", - "38004361", - "38004330", - "8782", - "38004332", - "38004204", - "9202", - "8883", - "32760", - "581475", - "38004291", - "8913", - "38004277", - "581383", - "8947", - "38004327", - "38004307", - "32037", - "38004453", - "8809", - "38004239", - "38004262", - "38004293", - "38004263", - "38004193", - "38004237", - "38004218", - "38004290", - "38004342", - "8827", - "38004280", - "38004362", - "581385", - "8966", - "38004285", - "38004334", - "5084", - "38004338", - "38004360", - "8957", - "38004197", - "38004356", - "38004329", - "32036", - "38004326", - "38004231", - "32261", - "38004351", - "581478", - "38004515", - "38004246", - "8676", - "38004074", - "8971", - "38004324", - "38004207", - "38004444", - "581381", - "8546", - "38004343", - "8761", - "38004364", - "38004345", - "38004311", - "38004349", - "38004352", - "38004287", - "38004284", - "581477", - "38004249", - "38004205", - "8964", - "38004366", - "38004354", - "8941", - "8974", - "38004202", - "38004335", - "38004702", - "38004210", - "38004238", - "8949", - "38004442", - "32693", - "38004226", - "38004697", - "8870", - "38004242", - "8650", - "38004521", - "8672", - "38004247", - "8668", - "38004689", - "33004", - "38004225", - "38004346", - "38004264", - "38004691", - "8968", - "8905", - "38004282", - "581379", - "32254", - "38004323", - "38004353", - "32276", - "32761", - "38004677", - "38004267", - "581384", - "38004314", - "8951", - "38004196", - "38004215", - "38004296", - "38004328", - "38004316", - "38004250", - "38004368", - "38004227", - "38004526", - "38004222", - "38004325", - "38004275", - "8960", - "8716", - "38004365", - "38003619", - "5083", - "38004235", - "38004278", - "38004121", - "38004274", - "38004276", - "38004703", - "38004236", - "38004228", - "38004269", - "38004217", - "8976", - "8858", - "38004315", - "38004256", - "38004687", - "8851", - "33007", - "32253", - "38004303", - "38004678", - "38004336", - "38004201", - "581479", - "38004248", - "38004294", - "38004340", - "38004305", - "38004523", - "38004233", - "38004317", - "38004198", - "38004519", - "38004240", - "38004363", - "38003620", - "38004321", - "38004288", - "38004348", - "38004337", - "262", - "38004244", - "38004223", - "38004318", - "38004698", - "8920", - "8602", - "38004261", - "38004268", - "38004696", - "38004680", - "38004206", - "38004700", - "8850", - "38004350", - "38004322", - "38004253", - "38004259", - "38004302", - "8615", - "38004333", - "38004260", - "38004306", - "38004232", - "8969", - "38004682", - "38003809", - "38004194", - "38004245", - "38004693", - "8977", - "38003793", - "38004339", - "38004219", - "8537", - "38004683", - "38004286", - "38004358", - "38004257", - "9201", - "38004690", - "8584", - "8756", - "38004243", - "9203", - "38004310", - "38004211", - "38004270", - "38004522", - "38004279", - "38004216", - "581476", - "8863", - "8882", - "581458", - "38004341", - "38004681", - "38004443", - "38004192", - "38004241", - "38004525", - "38004281", - "38004441", - "38004203", - "38004347", - "38004359", - "38004252", - "38003821", - "38004208", - "38004295", - "38004357", - "32759", - "38004258", - "8717", - "581380", - "38004251", - "38004199", - "705159", -] - -RESULTS = [] - -sequences = [x["concept_ids"] for x in test_sequence] - - -def check_ATT(token): - if token == "LT": - return True - elif token.startswith("W"): - weeks = int(token[1:]) - if weeks < 0 or weeks > 3: - return False - else: - return True - - elif token.startswith("M"): - months = int(token[1:]) - if months < 1 or months > 11: - return False - else: - return True - - else: - return False - - -def valid_visit(i, seq): - - if seq[i] not in VISITS or seq[i + 1] == "VE": - return -1 - - while seq[i] != "VE": - i += 1 - - if seq[i] == "VE" and i != len(seq) - 1: - i += 1 - time_token = check_ATT(seq[i]) - if time_token: - return i - else: - return -1 - - elif seq[i] == "VE" and i == len(seq) - 1: - return i - - else: - return -1 - - -def main(): - for seq in sequences: - valid = 1 - i = 0 - if seq[0] == "[START]": - i += 1 - if seq[1].startswith("year:") and int(seq[1][5:]) >= 0: - i += 1 - if seq[2].startswith("age:") and int(seq[2][4:]) >= 0: - i += 1 - if seq[3] in GENDER: - i += 1 - if seq[4] in RACE: - i += 1 - - while i < len(seq): - # iterate through the rest of the visit sequence - if seq[i] == "VS": - i += 1 - valid_index = valid_visit(i, seq) - if valid_index != -1: - i = valid_index - - else: - valid = 0 - break - - i += 1 - - RESULTS.append(valid) - return RESULTS - - -if __name__ == "__main__": - results = main() - print(results)