How to test? - minseok127/HashSimulator GitHub Wiki
Test
HashSimulator์ Test ํจ์๋ฅผ ์ฌ์ฉํ์ฌ test๋ฅผ ์งํํฉ๋๋ค.
Test๋ ํฌ๊ฒ ๋ค์ฏ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
Hashing Start
๋ชจ๋ key๋ค์ ๋ํด Hash Function์ ์ํํ๊ณ Hash code๋ฅผ ๋ง๋ค์ด๋ ๋๋ค.
์ดํ ์ฃผ์ด์ง Indexing ๋ฐฉ์์ ๋ฐ๋ผ bin์ ๋ค์ด๊ฐ data์ ๊ฐ์๋ฅผ ์ค์ ํฉ๋๋ค.
์ด ๊ณผ์ ๋ค์ด ์ํ๋๋ ์๊ฐ์ ์ธก์ ํ์ฌ nanosecond ๋จ์๋ก ์ถ๋ ฅํฉ๋๋ค.
Chi-squared test
bins์ ๋ค์ด๊ฐ data์ ์๋ฅผ ๋ฐํ์ผ๋ก Chi-squared test๋ฅผ ์ํํฉ๋๋ค.
Chi-squared value์ Degree of freedom์ ์ถ๋ ฅํฉ๋๋ค.
Avalanche test
key๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ bit๋ค์ ๋ํด์ ๊ฐ๊ฐ ํ ๋ฒ์ฉ ๋ฐ์ ์์ผ ์๋์ key์ bit 1๊ฐ๋ง ๋ค๋ฅด๋๋ก ์ค์ ํฉ๋๋ค.
์ดํ ๋ณํ๋ key์ ๋ํด์ Hash Function์ ์ํํ๊ณ ์๋์ key๋ก๋ถํฐ ๋์จ Hash code์ ๋น๊ตํฉ๋๋ค.
์ฃผ์ด์ง ๋ชจ๋ key์ ๋ํด์ ๋น๊ต๋ฅผ ๋ง์น ํ Hash code์ bit๋ค ๊ฐ๊ฐ์ ๋ํด Flip๋ ํ๋ฅ ์ ์ถ๋ ฅํฉ๋๋ค.
FillFactor test
FillFactor๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ผ๋ง๋ bin๋ค์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ง ์ถ๋ ฅํฉ๋๋ค.
Hashing Finish
๊ฐ bin๋ค์ ๋ช ๊ฐ์ Data๊ฐ ๋ค์ด๊ฐ๋ ์ง ์ถ๋ ฅํฉ๋๋ค.
์ดํ bin๋ค๊ณผ output๋ค์ ์ด๊ธฐํ์์ผ์ ๋ค๋ฅธ Hash Function์ด Test๋ฅผ ์ํํ ์ ์๋๋ก ํฉ๋๋ค.