The following pairs should look the same.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

Test 1:
Block to Inline
Block to Inline
Test 2:
Inline to Block
Inline to Block
Test 3:
pseudo
pseudo
Test 4: (Currently failing)
pseudo
pseudo
Test 5:
To Float
To Float

Test 6:
To Non Float
To Non Float
Test 7: (Currently failing)
To Float
To Float

Test 8:
To Non Float
To Non Float
PASS document.getElementById('test1').offsetWidth == document.getElementById('ref1').offsetWidth is true
PASS document.getElementById('test2').offsetHeight == document.getElementById('ref2').offsetHeight is true
PASS document.getElementById('test3').offsetWidth == document.getElementById('ref3').offsetWidth is true
FAIL document.getElementById('test4').offsetWidth == document.getElementById('ref4').offsetWidth should be true. Was false.
PASS document.getElementById('test5').offsetWidth == document.getElementById('ref5').offsetWidth is true
PASS document.getElementById('test6').offsetWidth == document.getElementById('ref6').offsetWidth is true
FAIL document.getElementById('test7').offsetWidth == document.getElementById('ref7').offsetWidth should be true. Was false.
PASS document.getElementById('test8').offsetWidth == document.getElementById('ref8').offsetWidth is true
PASS successfullyParsed is true

TEST COMPLETE

