Dvc import and cache

Hello,

I would like to ask about a few scenarios and confirm DVC’s behaviour.

Let’s say I dvc import a directory images/ (which contains image files) from a data registry. I will thus have
images/
images.dvc
in my workspace (WS), and the contents of images/ will be cached.

In which of these cases is the cache used to retrieve the directory instead of re-downloading it?

Case 1:

images/ is missing from the WS and dvc import is run. (would dvc pull be more appropriate here?)

Case 2:

images/ and images.dvc are missing from the WS and dvc import is run.

Case 3:
A file is deleted from the images/ directory in the WS and dvc import is run again. (dvc pull again?)

Now lets’s say I run dvc unfreeze images.dvc and images/ is used as a dependency for a stage stage1, which has always_changed=True.

Cases 4, (5), 6:
Same as Cases 1, 2 ,3, but dvc repro is run. Case 5 fails according to my attempts.

My understanding is in that all these cases (and whether the cache is in the WS or shared), since the data itself already exists in the cache, it should be retrieved from the cache. But I haven’t been able to reliably verify this yet, that’s why I’m asking.

Thank you in advance.