mirror of
https://github.com/tgorordo/carousel.git
synced 2026-06-12 20:42:13 -07:00
prelim cli, working core
This commit is contained in:
parent
39c0ad1f7c
commit
f4fb70e23b
7 changed files with 464 additions and 181 deletions
129
test/test_GS.py
Normal file
129
test/test_GS.py
Normal 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"]),
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue