- I thought you would have eaten when we arrived.
=>I thought you would eat before we arrived
- I thought you would eat when we arrived.
=>I thought you would eat after we arrived.
Am I right to think this way?
"I thought you would have eaten when we arrived." Is ambiguous, and depending on word stress could mean: I thought you would wait until we arrived before starting to eat.
If you want it to mean: I thought you would have completed eating before we arrived, you should use already, and to make the meaning even clearer, by the time or before instead of when:
I thought you would have already eaten by the time we arrived. (This is the one I would use.)
I thought you would have already eaten before we arrived.
I thought you already would have eaten by the time we arrived.
I thought you already would have eaten before we arrived.
I thought you would have already eaten when we arrived.
I thought you would have eaten by the time we arrived.
I thought you would have eaten before we arrived.
"I thought you would eat when we arrived." Could mean: I thought you would not eat before we arrived and would eat (with us) when we arrived.
It could also be used in the case of someone who is unable or unwilling to eat for some reason, and the person speaking believes their presence will induce that person to eat.