extend("test")
extend("array")
describe("array:group_by", () => {
it("groups by computed string key", () => {
items = [[t:"x", v:1], [t:"y", v:2], [t:"x", v:3]]
g = array:group_by(obj => obj["t"], items)
expect_equal(g["x"], [[t:"x", v:1],[t:"x", v:3]])
expect_equal(g["y"], [[t:"y", v:2]])
})
it("groups empty input to empty keyed array", () => {
g = array:group_by(x => "k", [])
expect_equal(type(g), "keyed_array")
})
})