Source: column_stack.mjs

import { tester, array, concatenate, asarray, NDArray } from './core.mjs';

/**
 * @param {NDArray[]} arrs
 * @returns {NDArray}
 */
export function column_stack(arrs) {
	let arrays = [];
	for (let arr of arrs) {
		arr = asarray(arr);
		if (arr.ndim < 2) arr = array(arr, null, false, 2).T;
		arrays.push(arr);
	}
	return concatenate(arrays, 1);
}

process.env.PRODUCTION ||
	tester.add(
		column_stack,
		() => {
			let a = array([1, 2, 3]);
			let b = array([2, 3, 4]);
			return column_stack([a, b]);
		},
		() =>
			array([
				[1, 2],
				[2, 3],
				[3, 4],
			])
	);