// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.19; /** * @title MockLiquidityManagerPositions * @notice Mock LiquidityManager for testing utilizationRate (slot 6) normalization in Optimizer. * @dev Exposes positions(uint8) matching ThreePositionStrategy's public mapping getter. * Stage enum: FLOOR=0, ANCHOR=1, DISCOVERY=2. */ contract MockLiquidityManagerPositions { struct TokenPosition { uint128 liquidity; int24 tickLower; int24 tickUpper; } mapping(uint8 => TokenPosition) private _positions; function setPosition(uint8 stage, uint128 liquidity, int24 tickLower, int24 tickUpper) external { _positions[stage] = TokenPosition({ liquidity: liquidity, tickLower: tickLower, tickUpper: tickUpper }); } function positions(uint8 stage) external view returns (uint128 liquidity, int24 tickLower, int24 tickUpper) { TokenPosition storage p = _positions[stage]; return (p.liquidity, p.tickLower, p.tickUpper); } }