private static hasSameCategoryIdentity()

in src/chicletSlicer.ts [380:414]


        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: DataViewScopeIdentity[] = (<DataViewCategoryColumn>dv1Categories[i]).identity;
                let dv2Identity: DataViewScopeIdentity[] = (<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;
        }