private static hasSameCategoryIdentity()

in src/sampleSlicer.ts [309:343]


    private static hasSameCategoryIdentity(dataView1: DataView, dataView2: DataView): boolean {
        if (!dataView1 ||
            !dataView2 ||
            !dataView1.categorical ||
            !dataView2.categorical) {
            return false;
        }

        let dv1Categories: DataViewCategoricalColumn[] = dataView1.categorical.categories;
        let dv2Categories: DataViewCategoricalColumn[] = dataView2.categorical.categories;

        if (!dv1Categories ||
            !dv2Categories ||
            dv1Categories.length !== dv2Categories.length) {
            return false;
        }

        for (let i: number = 0, len: number = dv1Categories.length; i < len; i++) {
            let dv1Identity: any[] = (<DataViewCategoryColumn>dv1Categories[i]).identity;
            let dv2Identity: any[] = (<DataViewCategoryColumn>dv2Categories[i]).identity;

            let dv1Length: number = this.getLengthOptional(dv1Identity);
            if ((dv1Length < 1) || dv1Length !== this.getLengthOptional(dv2Identity)) {
                return false;
            }

            for (let j: number = 0; j < dv1Length; j++) {
                if (!isEqual(dv1Identity[j].key, dv2Identity[j].key)) {
                    return false;
                }
            }
        }

        return true;
    }