prelim cli, working core

This commit is contained in:
Thomas (Tom) C. Gorordo 2026-05-29 17:50:34 -07:00
parent 39c0ad1f7c
commit f4fb70e23b
Signed by: tgorordo
GPG key ID: 0CBED22BB0D94490
7 changed files with 464 additions and 181 deletions

129
test/test_GS.py Normal file
View file

@ -0,0 +1,129 @@
import polars as pl
from polars.testing import assert_frame_equal
from carousel import def_acc_GS
def test_prefs():
people_prefs = pl.DataFrame(
{
"people": [
"Alice",
"Alice",
"Alice",
"Bob",
"Bob",
"Bob",
"Charlie",
"Charlie",
"Charlie",
],
"fruit": [
"apple",
"banana",
"cherry",
"banana",
"cherry",
"apple",
"cherry",
"apple",
"banana",
],
"rank": [1, 2, 3, 1, 2, 3, 1, 2, 3],
}
)
fruit_prefs = pl.DataFrame(
{
"fruit": [
"apple",
"apple",
"apple",
"banana",
"banana",
"banana",
"cherry",
"cherry",
"cherry",
],
"people": [
"Alice",
"Bob",
"Charlie",
"Alice",
"Bob",
"Charlie",
"Alice",
"Bob",
"Charlie",
],
"rank": [1, 1, 1, 1, 1, 1, 1, 1, 1], # fruits have no preferences
}
)
capacities = pl.DataFrame(
{
"fruit": ["apple", "cherry", "banana"],
"capacity": [1, 1, 1], # have one of each
}
)
assert_frame_equal(
def_acc_GS(
people_prefs,
fruit_prefs,
capacities,
app_col="people",
pos_col="fruit",
by="preference",
).sort(["people", "fruit"]),
pl.DataFrame(
{
"people": ["Alice", "Bob", "Charlie"],
"fruit": ["apple", "banana", "cherry"],
}
).sort(["people", "fruit"]),
)
def test_ranks():
people_ranks = pl.DataFrame(
{
"people": ["Alice", "Bob", "Charlie"],
"apple": [1, 3, 2],
"banana": [2, 1, 3],
"cherry": [3, 2, 1],
}
)
fruit_ranks = pl.DataFrame(
{
"fruit": ["apple", "banana", "cherry"],
"Alice": [1, 1, 1],
"Bob": [1, 1, 1],
"Charlie": [1, 1, 1],
}
)
capacities = pl.DataFrame(
{
"fruit": ["apple", "cherry", "banana"],
"capacity": [1, 1, 1], # have one of each
}
)
assert_frame_equal(
def_acc_GS(
people_ranks,
fruit_ranks,
capacities,
app_col="people",
pos_col="fruit",
by="ranking",
).sort(["people", "fruit"]),
pl.DataFrame(
{
"people": ["Alice", "Bob", "Charlie"],
"fruit": ["apple", "banana", "cherry"],
}
).sort(["people", "fruit"]),
)