IT系のネタ中心 チャレンジしたことやつまづいたことを載せたいと思います このブログのコンセプトは"ハッキングの為なら愛する家族を傷つけることをいとわない" ハッカー(ホワイト)を目指しているとっとこ駆け出しエンジニアです
require_once 'MailDispController.php'; class MailDispControllerTest extends PHPUnit_Framework_TestCase { /** * @test */ public function NEWとOLDの数がだいたい、5:5になってること() { $mdc = new MailDispController(); $ary = array( $mdc::USER_PATTERN_NEW => 0,- $mdc::USER_PATTERN_OLD => 0, ); for ($i = 0; $i < 10000; $i++) { $mailaddress = 'hogehoge' . $i . '@yahoo.co.jp'; $ary[$mdc->mailaddressConvertToUserPattern($mailaddress)]++; } $this->assertSame(5020, $ary[$mdc::USER_PATTERN_NEW], 'NEW 約 5000になっていること'); $this->assertSame(4980, $ary[$mdc::USER_PATTERN_OLD], 'OLD 約 5000になっていること'); } }
/** * メールアドレスをもとに表示を制御する(A/B) */ class MailDispController { const PREFIX = '_MAIL_DISP_CONTROLLER'; const USER_PATTERN_NEW = 'NEW'; const USER_PATTERN_OLD = 'OLD'; /** * メールアドレスからテストパターンを返す */ public function mailaddressConvertToUserPattern($mailaddress) { $encode_hash_hex = hash('sha256', $mailaddress . self::PREFIX); $hex = substr($encode_hash_hex, 0, 1); $dec = hexdec($hex); if ($dec % 2 === 0) { return self::USER_PATTERN_OLD; } else { return self::USER_PATTERN_NEW; } } }
0 件のコメント :
コメントを投稿