Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit 7ddb5c6

Browse files
committed
tests
1 parent 21c571f commit 7ddb5c6

File tree

5 files changed

+44
-5
lines changed

5 files changed

+44
-5
lines changed

GEMINI.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

bigframes/bigquery/ml.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
explain_predict,
2626
generate_embedding,
2727
generate_text,
28+
get_insights,
2829
global_explain,
2930
predict,
3031
transform,
@@ -39,4 +40,5 @@
3940
"transform",
4041
"generate_text",
4142
"generate_embedding",
43+
"get_insights",
4244
]

tests/system/large/bigquery/test_ml.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,32 @@ def test_generate_embedding_with_options(embedding_model):
6464
assert len(embedding[0]) == 256
6565

6666

67+
def test_get_insights(dataset_id):
68+
df = bpd.DataFrame(
69+
{
70+
"dim1": ["a", "a", "b", "b", "a", "a", "b", "b"],
71+
"dim2": ["x", "y", "x", "y", "x", "y", "x", "y"],
72+
"metric": [10, 20, 30, 40, 12, 25, 35, 45],
73+
"is_test": [False, False, False, False, True, True, True, True],
74+
}
75+
)
76+
model_name = f"{dataset_id}.contribution_analysis_model"
77+
78+
ml.create_model(
79+
model_name=model_name,
80+
options={
81+
"model_type": "CONTRIBUTION_ANALYSIS",
82+
"contribution_metric": "SUM(metric)",
83+
"is_test_col": "is_test",
84+
},
85+
training_data=df,
86+
)
87+
88+
result = ml.get_insights(model_name)
89+
assert len(result) > 0
90+
assert "contributors" in result.columns
91+
92+
6793
def test_create_model_linear_regression(dataset_id):
6894
df = bpd.DataFrame({"x": [1, 2, 3], "y": [2, 4, 6]})
6995
model_name = f"{dataset_id}.linear_regression_model"

tests/unit/bigquery/test_ml.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,15 @@ def test_generate_text_with_pandas_dataframe(read_pandas_mock, read_gbq_query_mo
177177
assert "'TYPE' AS request_type" in generated_sql
178178

179179

180+
@mock.patch("bigframes.pandas.read_gbq_query")
181+
def test_get_insights(read_gbq_query_mock):
182+
ml_ops.get_insights(MODEL_SERIES)
183+
read_gbq_query_mock.assert_called_once()
184+
generated_sql = read_gbq_query_mock.call_args[0][0]
185+
assert "ML.GET_INSIGHTS" in generated_sql
186+
assert f"MODEL `{MODEL_NAME}`" in generated_sql
187+
188+
180189
@mock.patch("bigframes.pandas.read_gbq_query")
181190
@mock.patch("bigframes.pandas.read_pandas")
182191
def test_generate_embedding_with_pandas_dataframe(

tests/unit/core/sql/test_ml.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,13 @@ def test_generate_text_model_with_options(snapshot):
203203
snapshot.assert_match(sql, "generate_text_model_with_options.sql")
204204

205205

206+
def test_get_insights_model_basic(snapshot):
207+
sql = bigframes.core.sql.ml.get_insights(
208+
model_name="my_project.my_dataset.my_model",
209+
)
210+
snapshot.assert_match(sql, "get_insights_model_basic.sql")
211+
212+
206213
def test_generate_embedding_model_basic(snapshot):
207214
sql = bigframes.core.sql.ml.generate_embedding(
208215
model_name="my_project.my_dataset.my_model",

0 commit comments

Comments
 (0)