def test_impart_taxons(): # Imparting a knowledge decreases the learning cost of the corresponding taxons, but has no # effect whatsoever on the selected programs. dbf = ProgramFilter(db) dbf.impart_taxons({"flow/conditional"}) print(set(dbf.selected_programs.keys())) assert set(dbf.selected_programs.keys()) == { "assignment.py", "collatz_print.py", "fizzbuzz.py", "is_even.py", }
def test_impart_taxons(): dbf = ProgramFilter(db) taxons = ["O/J", "X/S/M/L", "non/existing/taxon"] dbf.impart_taxons(taxons) print(sorted(dbf.imparted_knowledge)) assert dbf.imparted_knowledge == { "O", "O/J", "X", "X/S", "X/S/M", "X/S/M/L", "non", "non/existing", "non/existing/taxon", }
def test_impart_taxons(): # Imparting a triple doesn't make much sense. Currently, it comes down to imparting the two # taxons, and ignoring the predicate. dbf = ProgramFilter(db) dbf.impart_taxons({("equals", "operator/arithmetic/modulo", "type/number/integer")}) print(set(dbf.selected_programs.keys())) assert set(dbf.selected_programs.keys()) == { "assignment.py", "collatz_print.py", "fizzbuzz.py", "is_even.py", } print(dbf.imparted_knowledge) assert dbf.imparted_knowledge == { "operator", "operator/arithmetic", "operator/arithmetic/modulo", "type", "type/number", "type/number/integer", }