% Generate data
y = randn(7,1);
X = [ones(size(y)),randn(size(y))];
%% Model estimation
B = pinv(X) * y;
P = X*pinv(X'*X)*X';
M = eye(size(P,1)) - P;
R = M * y;
MSE = (R'*R) / (size(X,1)-size(X,2));
C = MSE * pinv(X'*X);
%% Hypothesis testing
H = [0,1];
DF1 = rank(H);
DF2 = trace(M);
F = (H*B)'*(inv(H*C*H'))*(H*B) / DF1;
pValue = 1-fcdf(F,DF1,DF2);
if DF1 == 1
TSign = sign(H*B);
t = sqrt(F)*TSign;
end