from pathlib import Path p = Path(__file__).parent / 'pipe-network-service/zksy-admin/src/test/java/com/zksy/web/controller/cockpit/CockpitMonitoringDistributionControllerTest.java' s = p.read_text(encoding='utf-8') def replace(old, new): global s assert old in s, old s = s.replace(old, new) replace('distributionExposesEnvelopeSixStateDistributionDistrictIndustryTypeAndMapFilter', 'distributionExposesEnvelopeGlobalEightBucketsAndRetainsNonRenderableObjects') replace('value(8)', 'value(12)') replace('"$.data.monitoringPoints", hasSize(5)', '"$.data.monitoringPoints", hasSize(7)') replace('"$.data.unassociatedEquipment", hasSize(3)', '"$.data.unassociatedEquipment", hasSize(5)') replace('"$.data.pointStatusDistribution", hasSize(6)', '"$.data.pointStatusDistribution", hasSize(8)') replace('monitoringPoints[3]', 'monitoringPoints[5]') replace('monitoringPoints[4]', 'monitoringPoints[6]') replace('"$.data.pointStatusDistribution[1].count").value(2)', '"$.data.pointStatusDistribution[1].count").value(1)') replace('"$.data.pointStatusDistribution[3].count").value(1)', '"$.data.pointStatusDistribution[3].count").value(2)') replace('"$.data.pointStatusDistribution[4].count").value(2)', '"$.data.pointStatusDistribution[4].count").value(1)') replace('"$.data.districtDistribution[0].pointCount").value(2)', '"$.data.districtDistribution[0].pointCount").value(4)') replace('"$.data.districtDistribution[0].deviceCount").value(4)', '"$.data.districtDistribution[0].deviceCount").value(8)') replace('"$.data.industryDistribution", hasSize(3)', '"$.data.industryDistribution", hasSize(4)') replace('"$.data.industryDistribution[0].deviceCount").value(4)', '"$.data.industryDistribution[0].deviceCount").value(5)') replace('"$.data.deviceTypeDistribution", hasSize(3)', '"$.data.deviceTypeDistribution", hasSize(6)') replace('"$.data.deviceTypeDistribution[0].deviceCount").value(4)', '"$.data.deviceTypeDistribution[0].deviceCount").value(5)') replace('"$.data.mapFilter.pointCodes", hasSize(5)', '"$.data.mapFilter.pointCodes", hasSize(7)') replace('"$.data.mapFilter.deviceCodes", hasSize(8)', '"$.data.mapFilter.deviceCodes", hasSize(12)') for key in ('unknownTypeCount', 'typeKindMismatchCount', 'nonFormalIndustryCount'): replace(f'"$.data.excluded.{key}").value(1)', f'"$.data.excluded.{key}").value(0)') replace('"$.data.pointStatusDistribution[0].count").value(0)', '"$.data.pointStatusDistribution[0].count").value(1)') replace('"$.data.pointStatusDistribution[4].count").value(0)', '"$.data.pointStatusDistribution[4].count").value(1)') replace('"NO_RESOLVED_DEVICES"', '"NO_OBJECTS"') replace('pointStatus must be ALARM, WARNING, WORK_ORDER, NORMAL, OFFLINE or EMPTY', 'pointStatus must be ALARM, WARNING, WORK_ORDER, NORMAL, OFFLINE, EMPTY, UNKNOWN or UNASSOCIATED') # Narrowed facet result sizes changed because coordinate validation no longer drops devices. for name in ('industryFilterNarrowsDistributionAndMapFilter', 'deviceTypeFilterNarrowsDistribution'): start = s.index(' void ' + name) end = s.index(' @Test', start) block = s[start:end].replace('pagination.total").value(3)', 'pagination.total").value(4)').replace('unassociatedEquipment", hasSize(1)', 'unassociatedEquipment", hasSize(2)') s = s[:start] + block + s[end:] # Cross-endpoint global distribution counts only points in six-state buckets. start = s.index(' void webSocketDeltaRecomputesStatusCounts') s = s[:start] + s[start:].replace('assertEquals(2, statusCount(initial, CockpitMonitoringPointStatus.OFFLINE))', 'assertEquals(1, statusCount(initial, CockpitMonitoringPointStatus.OFFLINE))').replace('assertEquals(1, statusCount(initial, CockpitMonitoringPointStatus.NORMAL))', 'assertEquals(2, statusCount(initial, CockpitMonitoringPointStatus.NORMAL))').replace('assertEquals(1, statusCount(applied, CockpitMonitoringPointStatus.OFFLINE))', 'assertEquals(0, statusCount(applied, CockpitMonitoringPointStatus.OFFLINE))').replace('assertEquals(2, statusCount(applied, CockpitMonitoringPointStatus.NORMAL))', 'assertEquals(3, statusCount(applied, CockpitMonitoringPointStatus.NORMAL))').replace('assertEquals(1, statusCount(ignoredOld, CockpitMonitoringPointStatus.OFFLINE))', 'assertEquals(0, statusCount(ignoredOld, CockpitMonitoringPointStatus.OFFLINE))').replace('assertEquals(2, statusCount(ignoredOld, CockpitMonitoringPointStatus.NORMAL))', 'assertEquals(3, statusCount(ignoredOld, CockpitMonitoringPointStatus.NORMAL))').replace('assertEquals(1, statusCount(ignoredUnknown, CockpitMonitoringPointStatus.OFFLINE))', 'assertEquals(0, statusCount(ignoredUnknown, CockpitMonitoringPointStatus.OFFLINE))').replace('assertEquals(2, statusCount(ignoredUnknown, CockpitMonitoringPointStatus.NORMAL))', 'assertEquals(3, statusCount(ignoredUnknown, CockpitMonitoringPointStatus.NORMAL))') p.write_text(s, encoding='utf-8', newline='\n') print('Updated existing distribution assertions to global counting contract.')