@@ -3,6 +3,8 @@ import type { LayerManifestEntry } from "./types";
33import {
44 buildLayerTileRows ,
55 buildOctober7thActiveLegendRows ,
6+ countMergedPackFullyActiveTileRows ,
7+ countMergedPackTileRows ,
68 october7thMergedFamilyKeyFromLayerId ,
79 packLayerKey ,
810 parsePackLayerKey ,
@@ -39,9 +41,9 @@ describe("october7thMergedFamilyKeyFromLayerId", () => {
3941 expect ( october7thMergedFamilyKeyFromLayerId ( "אירוע_נקודתי-רציחה_חטיפה" ) ) . toBe ( "אירוע_נקודתי-רציחה_חטיפה" ) ;
4042 } ) ;
4143
42- it ( "does not merge אזור_הרס geometry variants (excluded from merged families until glossary adds a family key) " , ( ) => {
43- expect ( october7thMergedFamilyKeyFromLayerId ( "אזור_הרס-אזור" ) ) . toBeNull ( ) ;
44- expect ( october7thMergedFamilyKeyFromLayerId ( "אזור_הרס-נקודה" ) ) . toBeNull ( ) ;
44+ it ( "merges אזור_הרס geometry variants into one family" , ( ) => {
45+ expect ( october7thMergedFamilyKeyFromLayerId ( "אזור_הרס-אזור" ) ) . toBe ( "אזור_הרס" ) ;
46+ expect ( october7thMergedFamilyKeyFromLayerId ( "אזור_הרס-נקודה" ) ) . toBe ( "אזור_הרס" ) ;
4547 } ) ;
4648} ) ;
4749
@@ -184,6 +186,27 @@ describe("buildOctober7thActiveLegendRows", () => {
184186 } ) ;
185187} ) ;
186188
189+ describe ( "countMergedPackTileRows / countMergedPackFullyActiveTileRows" , ( ) => {
190+ it ( "counts october merged families as one virtual row each" , ( ) => {
191+ const layers = [ layer ( "ביזה-אזור" ) , layer ( "ביזה-נקודה" ) , layer ( "solo" ) ] ;
192+ expect ( countMergedPackTileRows ( "october_7th" , layers ) ) . toBe ( 2 ) ;
193+ const key = ( id : string ) => packLayerKey ( "october_7th" , id ) ;
194+ const onBoth = { [ key ( "ביזה-אזור" ) ] : true , [ key ( "ביזה-נקודה" ) ] : true , [ key ( "solo" ) ] : false } ;
195+ expect ( countMergedPackFullyActiveTileRows ( "october_7th" , layers , onBoth ) ) . toBe ( 1 ) ;
196+ const onPartial = { [ key ( "ביזה-אזור" ) ] : true , [ key ( "ביזה-נקודה" ) ] : false , [ key ( "solo" ) ] : true } ;
197+ expect ( countMergedPackFullyActiveTileRows ( "october_7th" , layers , onPartial ) ) . toBe ( 1 ) ;
198+ const onAll = { [ key ( "ביזה-אזור" ) ] : true , [ key ( "ביזה-נקודה" ) ] : true , [ key ( "solo" ) ] : true } ;
199+ expect ( countMergedPackFullyActiveTileRows ( "october_7th" , layers , onAll ) ) . toBe ( 2 ) ;
200+ } ) ;
201+
202+ it ( "matches raw layer count for non-october packs" , ( ) => {
203+ const layers = [ layer ( "a" ) , layer ( "b" ) ] ;
204+ expect ( countMergedPackTileRows ( "greens" , layers ) ) . toBe ( 2 ) ;
205+ const m = { [ packLayerKey ( "greens" , "a" ) ] : true , [ packLayerKey ( "greens" , "b" ) ] : false } ;
206+ expect ( countMergedPackFullyActiveTileRows ( "greens" , layers , m ) ) . toBe ( 1 ) ;
207+ } ) ;
208+ } ) ;
209+
187210describe ( "pickOctober7thFamilyLayerForSwatch" , ( ) => {
188211 it ( "prefers point over line over polygon, then manifest order" , ( ) => {
189212 const manifest : LayerManifestEntry [ ] = [
0 commit comments