you need to parse some logs and do some individual testing to get specific details on skills and their relation to other attributes either while doing damage or receiving damage.
Keep in mind that skills are not static, they are dynamic in a sense that there are other contributing factors that will affect their performance: level, armor, spells, NPC level, NPC class, etc.... if it were static, you would be able to find this out quite easily.
Some basics already known to get you started:
DPS
The assumption is that DPS is calculated as such:
[ ( min dmg + max dmg ) / 2 ] / speed = DPS
So if you have a sword that does 25 - 35 damage every .56 seconds, this should apply:
[ ( 25 min dmg + 35 max dmg ) / 2 ] / .56 speed = 53.57
rounded up to 54 DPS
Adding Gems
Elemental damage socket gems (not sure about other types) are tacked on to max damage and go into the calculation as such:
{ ( min dmg + max dmg + gem dmg ) / 2 } / speed = DPS
So adding a +23 fire damage gem to a sword that does 25 - 35 damage every .56 seconds should look like this:
{ ( 25 min dmg + 35 max dmg + 23 gem dmg ) / 2 } / .56 speed = 74.1
rounded to either 74 or 75 DPS
Damage Reflection
Player equips 188 damage reflected amulet
Monster attacks for 2 damage
Player takes 0 or 2 or 9999 damage, it doesn't seem to matter
Monster receives 188 damage