I have implemented Dupire's local volatility function $\sigma(K,T)$ using call option price time and strike derivatives. $\sigma(K,T)$ uses a fixed spot $S_0$. The surface $\sigma(K,T)$ closely matches the market implied volatility surface $\sigma_{mkt}(K,T)$.
I am confused as to how to test the model in a Monte Carlo simulation. Underlier paths would be simulated using
$S_{t+1} = S_t*\exp((r-0.5*\sigma(S_t,t)^2)dt + \sigma(S_t,t)*\sqrt{dt}*dB_t$
starting from spot $S_0$.
Here $(K,T)$ in $\sigma(K,T)$ are played by $(S_t, t)$.
I need to "match the prices of vanilla options", but what does that mean here? If we concentrate on maturity T, I can compute the MC price of a call struck at K with maturity T as
$\text{price} = \exp(-R_T T)*\text{average of} \max(0,S_T-K) $
where the average is over the paths simulated using the GBM with local volatility. If this were repeated for multiple strikes, would the resulting prices be expected to match the prices used to compute the market implied volatilities, for all of the strikes?