How to run a private bitcoin network with low difficulty? I want to test and develop an open source mining pool. I don't have access to an ASIC miner or GPU, so I have to use my CPU to simulate mining and see how the pool really works.  

The problem is the bitcoin testnet difficulty is so high and the CPU can't mine, produce blocks and get reward. I need a low difficulty private bitcoin in order to test the mining process. How can I achieve that?
Use regtest

Chain selection options:

  -regtest
       Enter regression test mode, which uses a special chain in which blocks
       can be solved instantly. This is intended for regression testing
       tools and app development.

  -testnet
       Use the test chain


Using this mode, you can manually mine blocks by issuing the following command, where nBlocks is the number of blocks to mine. You will need atleast 101 blocks before your first mining reward becomes available.

bitcoin-cli generate nBlock