$string = <>; #the random bit string is taken as input from STDIN. As of now, it can't contain whitespace
TEST2:{
$stra = $string;
for(1..240){
$bits = 0;
if($bits == 0){
$zero++
}
if($bits == 1){
$one++
}
if($bits == 2){
$two++
}
if($bits == 3){
$three++
}
}
$zero *= 8/240;
$one *= 8/240;
$two *= 8/240;
$three *= 8/240;
print "Test 2: $zero (1) $one (3) $two (3) $three (1)\n"; #the proportions should be 1:3:3:1 }
TEST3:{
$strb = $string;
$runlength = 1;
for(1..998){
if($temp == $state){
$runlength++
}
else{
$runs[$runlength]++;
$state = $temp;
$runlength = 1;
}
}
print "Test 3: @runs\n"; #the result should be a series of numbers, each 1/2 of the previous number }
TEST3:{
$strc = $string;
for(0..209){
$half1[$_] = chop($strc); }
for(0..209){
$half2[$_] = chop($strc); }
for(0..209){
if($half1[$_] == $half2[$_]){
$same++;
}
}
$same /= 210;
print "Test 4: $same\n"; #the result should be 0.5 }
JHN0cmluZyA9IDw+OyAgI3RoZSByYW5kb20gYml0IHN0cmluZyBpcyB0YWtlbiBhcyBpbnB1dCBmcm9tIFNURElOLiBBcyBvZiBub3csIGl0IGNhbid0IGNvbnRhaW4gd2hpdGVzcGFjZQpjaG9tcCgkc3RyaW5nKTsKJHN0cmluZyA9IHJldmVyc2UoJHN0cmluZyk7CgpURVNUMjp7CiAkc3RyYSA9ICRzdHJpbmc7CiBmb3IoMS4uMjQwKXsKICAkYml0cyA9IDA7CiAgJGJpdHMgKz0gY2hvcCgkc3RyYSk7CiAgJGJpdHMgKz0gY2hvcCgkc3RyYSk7CiAgJGJpdHMgKz0gY2hvcCgkc3RyYSk7CiAgaWYoJGJpdHMgPT0gMCl7CiAgICR6ZXJvKysKICB9CiAgaWYoJGJpdHMgPT0gMSl7CiAgICRvbmUrKwogIH0KICBpZigkYml0cyA9PSAyKXsKICAgJHR3bysrCiAgfQogIGlmKCRiaXRzID09IDMpewogICAkdGhyZWUrKwogIH0KIH0KICR6ZXJvICo9IDgvMjQwOwogJG9uZSAqPSA4LzI0MDsKICR0d28gKj0gOC8yNDA7CiAkdGhyZWUgKj0gOC8yNDA7CiBwcmludCAiVGVzdCAyOiAkemVybyAoMSkgJG9uZSAoMykgJHR3byAoMykgJHRocmVlICgxKVxuIjsgICN0aGUgcHJvcG9ydGlvbnMgc2hvdWxkIGJlIDE6MzozOjEKfQoKVEVTVDM6ewogJHN0cmIgPSAkc3RyaW5nOwogJHN0YXRlID0gY2hvcCgkc3RyYik7CiAkcnVubGVuZ3RoID0gMTsKIGZvcigxLi45OTgpewogICR0ZW1wID0gY2hvcCgkc3RyYik7CiAgaWYoJHRlbXAgPT0gJHN0YXRlKXsKICAgJHJ1bmxlbmd0aCsrCiAgfQogIGVsc2V7CiAgICRydW5zWyRydW5sZW5ndGhdKys7CiAgICRzdGF0ZSA9ICR0ZW1wOwogICAkcnVubGVuZ3RoID0gMTsKICB9CiB9CiBwcmludCAiVGVzdCAzOiBAcnVuc1xuIjsgI3RoZSByZXN1bHQgc2hvdWxkIGJlIGEgc2VyaWVzIG9mIG51bWJlcnMsIGVhY2ggMS8yIG9mIHRoZSBwcmV2aW91cyBudW1iZXIKfQoKVEVTVDM6ewogJHN0cmMgPSAkc3RyaW5nOwogZm9yKDAuLjIwOSl7CiAgJGhhbGYxWyRfXSA9IGNob3AoJHN0cmMpOwogfQogZm9yKDAuLjIwOSl7CiAgJGhhbGYyWyRfXSA9IGNob3AoJHN0cmMpOwogfQogZm9yKDAuLjIwOSl7CiAgaWYoJGhhbGYxWyRfXSA9PSAkaGFsZjJbJF9dKXsKICAgJHNhbWUrKzsKICB9CiB9CiAkc2FtZSAvPSAyMTA7CiBwcmludCAiVGVzdCA0OiAkc2FtZVxuIjsgI3RoZSByZXN1bHQgc2hvdWxkIGJlIDAuNQp9
MTEwMTExMDAxMTAxMTExMDEwMTAxMTAxMDAxMTExMDAxMTEwMTEwMTExMDExMDExMDAxMDAwMDAxMDEwMDExMDAwMTAwMTEwMTEwMDAwMTExMTAwMDAxMDEwMTAwMTAwMTAxMTEwMDAwMTAwMTAxMTAxMDExMTAwMTEwMTAwMDAwMTAxMDEwMDAwMTAwMDAwMDEwMTAwMDEwMDExMTAwMTExMTEwMTAxMTAxMDAwMDEwMTExMTEwMTAxMDAxMTAwMTAwMTExMDExMDAxMDAwMDExMDAxMDAwMDEwMDAxMDAxMTEwMDEwMDExMDEwMDAwMDExMTEwMTAwMTAxMDAwMTAwMTAxMDExMTAwMTAxMDExMTEwMDEwMDAxMDExMTAwMDAwMTAwMTAxMTExMDAwMTAxMTAxMDAwMTExMTEwMDAxMDExMDEwMTEwMDAxMDAxMTExMTAxMTEwMTAwMDAwMTEwMTAxMTAxMDExMTAxMTAwMTEwMDEwMDEwMTEwMDAxMDAwMTEwMDAxMTExMDAxMDEwMDEwMTAxMTAxMDAwMDEwMDAwMTExMTEwMTAwMDAwMDAxMDAwMDAwMTAxMDEwMTAwMDAwMTAwMTAwMDEwMDAwMDAxMDAxMDAwMDAxMDExMDAxMDAxMDAxMTAwMDEwMDEwMTExMDExMTEwMTExMTExMDAxMDAwMTExMDAwMTEwMTAxMTAxMTExMTAxMDExMDAwMTAwMDAwMTExMDEwMTAxMDAwMTEwMDEwMTAwMTExMDExMTAwMTExMTAwMDAxMDEwMDExMDAwMDAwMDExMTAwMTAwMDAxMDAwMDAxMDEwMTAxMTEwMDAwMDAxMDAwMDExMDExMTAxMTAxMDExMDExMDEwMTExMDAwMDExMDAxMDExMDEwMDEwMTAxMTAwMDAwMDExMDEwMDEwMDAxMTExMDEwMDExMTAxMDAxMDAwMDAxMDAwMDAwMDAwMDExMTExMDAxMTEwMDEwMDExMTAxMTAxMTAwMTExMDEwMTAxMDEwMTExMDExMDAxMDAwMDEwMTEwMDAwMDExMTAxMTExMTAwMDExMDAxMDExMDEwMDAwMDExMDEwMTEwMDExMTEwMTAwMTEwMTAwMDAxMDExMTEwMDExMDAxMTAwMTEwMDAxMDAxMDAxMDAwMTAwMTAwMDExMTExMTAwMDAwMDAwMDEwMTExMDEwMTAwMDAxMTExMDAwMTAxMDAxMDAwMDExMDExMDAwMTEwMTEwMTAxMTAwMDEwMTAxMDAwMTEwMTAwMTEwMTExMDAwMTAxMTAxMTAxMTEwMTExMDEwMTExMDAwMTAxMA==
1101110011011110101011010011110011101101110110110010000010100110001001101100001111000010101001001011100001001011010111001101000001010100001000000101000100111001111101011010000101111101010011001001110110010000110010000100010011100100110100000111101001010001001010111001010111100100010111000001001011110001011010001111100010110101100010011111011101000001101011010111011001100100101100010001100011110010100101011010000100001111101000000010000001010101000001001000100000010010000010110010010011000100101110111101111110010001110001101011011111010110001000001110101010001100101001110111001111000010100110000000111001000010000010101011100000010000110111011010110110101110000110010110100101011000000110100100011110100111010010000010000000000111110011100100111011011001110101010101110110010000101100000111011111000110010110100000110101100111101001101000010111100110011001100010010010001001000111111000000000101110101000011110001010010000110110001101101011000101010001101001101110001011011011101110101110001010