❋✉♥❝t✐♦♥❛❧ Pr♦❣r❛♠♠✐♥❣ ◗✉✐❝❦❈❤❡❝❦✿ ❆✉t♦♠❛t❡❞ ❘❛♥❞♦♠ ❚❡st✐♥❣ ❏❡✈❣❡♥✐ ❑❛❜❛♥♦✈ ❉❡♣❛rt♠❡♥t ♦❢ ❈♦♠♣✉t❡r ❙❝✐❡♥❝❡ ❯♥✐✈❡rs✐t② ♦❢ ❚❛rt✉
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
❘❛♥❞♦♠ ❚❡st✐♥❣ ❖✉t❧✐♥❡ ❚❡st✐♥❣ ✐s ✈❡r② ✐♠♣♦rt❛♥t ✐♥ ♣r♦❣r❛♠♠✐♥❣ ■♥ ❏❯♥✐t ❛♥❞ ❛❧✐❦❡ ✇❡ ❝♦❧❧❡❝t t❡st ❝❛s❡s t❤❛t ❛r❡ ♣r❡❛rr❛♥❣❡❞ ❛r❣✉♠❡♥t✲r❡s✉❧t ♣❛✐rs ■♥ ❍❛s❦❡❧❧ t❤❡r❡ ✐s ❍❯♥✐t ✇❤✐❝❤ ❞♦❡s t❤❡ s❛♠❡ ❍♦✇❡✈❡r ✇❡ ❝♦✉❧❞ ❞♦ ❜❡tt❡r ✕ ❙✐♥❝❡ ❢✉♥❝t✐♦♥s ❛r❡ ♣✉r❡ ✇❡ ❝❛♥ t❡st t❤❡♠ ❛❣❛✐♥st ♣r♦♣❡rt✐❡s ✕ ❙✐♥❝❡ ❞❛t❛ t②♣❡s ❛r❡ str✉❝t✉r❛❧ ✇❡ ❝❛♥ tr② ❣❡♥❡r❛t✐♥❣ r❛♥❞♦♠ ❞❛t❛ s❛♠♣❧❡s ❘❛♥❞♦♠ t❡st✐♥❣ ❡♥❥♦②s s♦♠❡ ♦❢ t❤❡ ❜❡♥❡✜ts ♦❢ ❢♦r♠❛❧ ✈❡r✐✜❝❛t✐♦♥ ✇✐t❤♦✉t ♥❡❛r❧② ❛s ♠✉❝❤ ♣❛✐♥✦
r❡✈❡rs❡ ❡①❛♠♣❧❡s Pr♦♣❡rt② ❲❡ ❝♦♥❝❛t❡♥❛t❡❞ ✐♥ ❛ ✇r♦♥❣ ♦r❞❡r✿ ♣r♦♣❘❡✈❆♣♣✷ ✿✿ ❬ ■♥t ❪ ✦ ❬ ■♥t ❪ ✦ ❇♦♦❧ ♣r♦♣❘❡✈❆♣♣✷ ①s ②s ❂ r❡✈❡rs❡ ✭ ①s ✰ ✰ ②s ✮ ✑ r❡✈❡rs❡ ②s ✰ ✰ r❡✈❡rs❡ ①s ❖✉t♣✉t Test> quickCheck propRevApp2 OK, passed 100 tests.
r❡✈❡rs❡ ❡①❛♠♣❧❡s Pr♦♣❡rt② ❲❡ ❝♦♥❝❛t❡♥❛t❡❞ ✐♥ ❛ ✇r♦♥❣ ♦r❞❡r✿ ♣r♦♣❘❡✈❆♣♣✷ ✿✿ ❬ ■♥t ❪ ✦ ❬ ■♥t ❪ ✦ ❇♦♦❧ ♣r♦♣❘❡✈❆♣♣✷ ①s ②s ❂ r❡✈❡rs❡ ✭ ①s ✰ ✰ ②s ✮ ✑ r❡✈❡rs❡ ②s ✰ ✰ r❡✈❡rs❡ ①s ❖✉t♣✉t Test> quickCheck propRevApp2 OK, passed 100 tests.
r❡✈❡rs❡ ❡①❛♠♣❧❡s Pr♦♣❡rt② ▲❡t✬s ❝❤❡❝❦ ✐❢ ②♦✉ ❝❛♥ r❡✈❡rs❡ ❜❡❢♦r❡ ❝♦♥❝❛t❡♥❛t✐♥❣✿ ♣r♦♣❘❡✈❆♣♣✶ ✿✿ ❬ ■♥t ❪ ✦ ❬ ■♥t ❪ ✦ ❇♦♦❧ ♣r♦♣❘❡✈❆♣♣✶ ①s ②s ❂ r❡✈❡rs❡ ✭ ①s ✰ ✰ ②s ✮ ✑ r❡✈❡rs❡ ①s ✰ ✰ r❡✈❡rs❡ ②s ❖✉t♣✉t Test> quickCheck propRevApp1 Falsifiable, after 4 tests: [-3,-4,-4] [-4,-1,1,1]
r❡✈❡rs❡ ❡①❛♠♣❧❡s Pr♦♣❡rt② ▲❡t✬s ❝❤❡❝❦ ✐❢ ②♦✉ ❝❛♥ r❡✈❡rs❡ ❜❡❢♦r❡ ❝♦♥❝❛t❡♥❛t✐♥❣✿ ♣r♦♣❘❡✈❆♣♣✶ ✿✿ ❬ ■♥t ❪ ✦ ❬ ■♥t ❪ ✦ ❇♦♦❧ ♣r♦♣❘❡✈❆♣♣✶ ①s ②s ❂ r❡✈❡rs❡ ✭ ①s ✰ ✰ ②s ✮ ✑ r❡✈❡rs❡ ①s ✰ ✰ r❡✈❡rs❡ ②s ❖✉t♣✉t Test> quickCheck propRevApp1 Falsifiable, after 4 tests: [-3,-4,-4] [-4,-1,1,1]
Recommend
More recommend