You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test_bql.py is over 2500 lines of tests, its purpose is to test the BQL -> SQL compiler.
The content of the tests themselves is fine, but the string comparison pattern assert bql2sql(...) == '...' is very difficult to maintain, because:
the string comaprison is sensitive to whitespace, which can be very difficult to debug when there is a single error,
python requires '' to break lines, which means we end up with tests like this:
assert bql2sql('infer rowid, age, weight with confidence 0.9 from p1') \
== \
'SELECT "rowid" AS "rowid",' \
' "IFNULL"("age", bql_predict(1, NULL, NULL, _rowid_, 2, 0.9, NULL))' \
' AS "age",' \
' "IFNULL"("weight",'\
' bql_predict(1, NULL, NULL, _rowid_, 3, 0.9, NULL))' \
' AS "weight"' \
' FROM "t1";'
which is fine if the test never needs to be updated, but when the interface of bql_predict changes to have .e.g more arguments, the line becomes long and needs to be broken, leading to a very slow update process.
The text was updated successfully, but these errors were encountered:
test_bql.py is over 2500 lines of tests, its purpose is to test the BQL -> SQL compiler.
The content of the tests themselves is fine, but the string comparison pattern
assert bql2sql(...) == '...'
is very difficult to maintain, because:the string comaprison is sensitive to whitespace, which can be very difficult to debug when there is a single error,
python requires '' to break lines, which means we end up with tests like this:
which is fine if the test never needs to be updated, but when the interface of
bql_predict
changes to have .e.g more arguments, the line becomes long and needs to be broken, leading to a very slow update process.The text was updated successfully, but these errors were encountered: