### Question:
TransactionPoolImpl implements TransactionPool { @Override public PendingState getPendingState() { removeObsoleteTransactions(this.getCurrentBestBlockNumber(), this.outdatedThreshold, this.outdatedTimeout); return new PendingState( repository, new TransactionSet(pendingTransactions), (repository, tx) -> new TransactionExecutor( tx, 0, bestBlock.getCoinbase(), repository, blockStore, receiptStore, programInvokeFactory, createFakePendingBlock(bestBlock), new EthereumListenerAdapter(), 0, config.getVmConfig(), config.getBlockchainConfig(), config.playVM(), config.isRemascEnabled(), config.vmTrace(), new PrecompiledContracts(config), config.databaseDir(), config.vmTraceDir(), config.vmTraceCompressed() ) ); } TransactionPoolImpl(BlockStore blockStore,
                               ReceiptStore receiptStore,
                               EthereumListener listener,
                               ProgramInvokeFactory programInvokeFactory,
                               Repository repository,
                               UscSystemProperties config);  TransactionPoolImpl(UscSystemProperties config,
                               Repository repository,
                               BlockStore blockStore,
                               ReceiptStore receiptStore,
                               ProgramInvokeFactory programInvokeFactory,
                               EthereumListener listener,
                               int outdatedThreshold,
                               int outdatedTimeout); @Override void start(Block initialBestBlock); void stop(); boolean hasCleanerFuture(); void cleanUp(); int getOutdatedThreshold(); int getOutdatedTimeout(); Block getBestBlock(); @Override PendingState getPendingState(); @Override synchronized List<Transaction> addTransactions(final List<Transaction> txs); @Override synchronized boolean addTransaction(final Transaction tx); @Override synchronized void processBest(Block block); @VisibleForTesting void acceptBlock(Block block); @VisibleForTesting void retractBlock(Block block); @VisibleForTesting void removeObsoleteTransactions(long currentBlock, int depth, int timeout); @VisibleForTesting synchronized void removeObsoleteTransactions(long timeSeconds); @Override synchronized void removeTransactions(List<Transaction> txs); @Override synchronized List<Transaction> getPendingTransactions(); @Override synchronized List<Transaction> getQueuedTransactions();  }### Answer:
@Test public void usingAccountsWithInitialBalance() { createTestAccounts(2, Coin.valueOf(10L)); PendingState pendingState = transactionPool.getPendingState(); Assert.assertNotNull(pendingState); Account account1 = createAccount(1); Account account2 = createAccount(2); Assert.assertEquals(BigInteger.TEN, pendingState.getBalance(account1.getAddress()).asBigInteger()); Assert.assertEquals(BigInteger.TEN, pendingState.getBalance(account2.getAddress()).asBigInteger()); }