Ok, this site says:
"Couldn't have" is used to show someone's feeling that something in the past is impossible.
You couldn't have seen Jerry yesterday. He's been out of town since last Tuesday!
(It's impossible for you to have seen Jerry yesterday because he wasn't here. He's been out of town since last Tuesday!)
So, "someone's feeling" is a guess right? Because if that actually happened, then you use "Couldn't do" right?
Let say we all know that Tom is a very lazy student
Suppose if Tom actually failed the test (he got the result in front of himself) & we saw his failed result, we will say: "Tom couldn't pass the test"
but suppose Tom took the test & he will get his result tomorrow, then we will say: "Tom can't pass the test"
however, suppose Tom took the test & he got the result in front of himself, we know he already got his result but we don't know if he passed the test or not, we will say: "Tom couldn't have passed the test"
However, thing will completely opposite if we say:
"Tom couldn't have passed the test without cheating", that means Tom actually passed the test (he got the passed result)
Am I thinking right?
Modal verbs are the hardest English stuff I ve ever learned.