# Open Data File and read the binary data of e data_path = os.path.join(os.getcwd(), 'data', 'data.sqrt3') handle = open(data_path) data_list = [] for line in handle: data_list.append(line.strip().rstrip()) binary_data = ''.join(data_list) print('The statistical test of the Binary Expansion of SQRT(3)') print('2.1. Frequency Test:\t\t\t\t\t\t\t\t\t', FrequencyTest.monobit_test(binary_data[:1000000])) print('2.2. Block Frequency Test:\t\t\t\t\t\t\t\t', FrequencyTest.block_frequency(binary_data[:1000000])) print('2.3. Run Test:\t\t\t\t\t\t\t\t\t\t\t', RunTest.run_test(binary_data[:1000000])) print('2.4. Run Test (Longest Run of Ones): \t\t\t\t\t', RunTest.longest_one_block_test(binary_data[:1000000])) print('2.5. Binary Matrix Rank Test:\t\t\t\t\t\t\t', Matrix.binary_matrix_rank_text(binary_data[:1000000])) print('2.6. Discrete Fourier Transform (Spectral) Test: \t\t', SpectralTest.sepctral_test(binary_data[:1000000])) print('2.7. Non-overlapping Template Matching Test:\t\t\t', TemplateMatching.non_overlapping_test(binary_data[:1000000], '000000001')) print('2.8. Overlappong Template Matching Test: \t\t\t\t', TemplateMatching.overlapping_patterns(binary_data[:1000000])) print('2.9. Universal Statistical Test:\t\t\t\t\t\t', Universal.statistical_test(binary_data[:1000000])) print('2.10. Linear Complexity Test:\t\t\t\t\t\t\t', ComplexityTest.linear_complexity_test(binary_data[:1000000])) print('2.11. Serial Test:\t\t\t\t\t\t\t\t\t\t', Serial.serial_test(binary_data[:1000000])) print('2.12. Approximate Entropy Test:\t\t\t\t\t\t\t', ApproximateEntropy.approximate_entropy_test(binary_data[:1000000])) print('2.13. Cumulative Sums (Forward):\t\t\t\t\t\t', CumulativeSums.cumulative_sums_test(binary_data[:1000000], 0)) print('2.13. Cumulative Sums (Backward):\t\t\t\t\t\t', CumulativeSums.cumulative_sums_test(binary_data[:1000000], 1)) result = RandomExcursions.random_excursions_test(binary_data[:1000000]) print('2.14. Random Excursion Test:') print('\t\t STATE \t\t\t xObs \t\t\t\t P-Value \t\t\t Conclusion') for item in result: print('\t\t', repr(item[0]).rjust(4), '\t\t', item[1], '\t\t', repr(item[2]).ljust(14), '\t\t',
for line in handle: data_list.append(line.strip().rstrip()) binary_data = ''.join(data_list) print('The statistical test of the Binary Expansion of e') print('2.01. Frequency Test:\t\t\t\t\t\t\t\t', FrequencyTest.monobit_test(binary_data[:1000000])) print('2.02. Block Frequency Test:\t\t\t\t\t\t\t', FrequencyTest.block_frequency(binary_data[:1000000])) print('2.03. Run Test:\t\t\t\t\t\t\t\t\t\t', RunTest.run_test(binary_data[:1000000])) print('2.04. Run Test (Longest Run of Ones): \t\t\t\t', RunTest.longest_one_block_test(binary_data[:1000000])) print('2.05. Binary Matrix Rank Test:\t\t\t\t\t\t', Matrix.binary_matrix_rank_text(binary_data[:1000000])) print('2.06. Discrete Fourier Transform (Spectral) Test:\t', SpectralTest.sepctral_test(binary_data[:1000000])) print( '2.07. Non-overlapping Template Matching Test:\t\t', TemplateMatching.non_overlapping_test(binary_data[:1000000], '000000001')) print('2.08. Overlappong Template Matching Test: \t\t\t', TemplateMatching.overlapping_patterns(binary_data[:1000000])) print('2.09. Universal Statistical Test:\t\t\t\t\t', Universal.statistical_test(binary_data[:1000000])) print('2.10. Linear Complexity Test:\t\t\t\t\t\t', ComplexityTest.linear_complexity_test(binary_data[:1000000])) print('2.11. Serial Test:\t\t\t\t\t\t\t\t\t', Serial.serial_test(binary_data[:1000000])) print('2.12. Approximate Entropy Test:\t\t\t\t\t\t', ApproximateEntropy.approximate_entropy_test(binary_data[:1000000]))
def execute(self): print('Execute') input = '' self.__test_results = [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()] if (not len(self.__binary_data.get().strip()) == 0) and (not len(self.__file_name.get()) == 0): messagebox.showwarning("Warning", 'You can only either input the binary data or read the data from from the file.') elif not len(self.__binary_data.get().strip()) == 0: print('User Input') input = self.__binary_data.get() elif not len(self.__file_name.get()) == 0: print('File Input') print(self.__file_name.get()) handle = open(self.__file_name.get()) data_list = [] for line in handle: data_list.append(line.strip().rstrip()) input = ''.join(data_list) else: messagebox.showwarning("Warning", 'You must enter either input data or file name to read before you can execute the test.') if len(input) > 1000000: input = input[:1000000] checked = False for item in self.__chb_var: if item.get() == 1: checked = True break if not checked: messagebox.showwarning("Warning", "you must select a test to execute") else: if self.__chb_var[0].get() == 1: print(self.__test_type[0], 'selected.') result = ft.monobit_test(input) self.__monobit_p_value.set(result[0]) self.__monobit_result.set(self.get_conclusion(result[1])) self.__test_results[0] = result if self.__chb_var[1].get() == 1: print(self.__test_type[1], 'selected.') result = ft.block_frequency(input) self.__block_p_value.set(result[0]) self.__block_result.set(self.get_conclusion(result[1])) self.__test_results[1] = result if self.__chb_var[2].get() == 1: print(self.__test_type[2], 'selected.') result = rt.run_test(input) self.__run_p_value.set(result[0]) self.__run_result.set(self.get_conclusion(result[1])) self.__test_results[2] = result if self.__chb_var[3].get() == 1: print(self.__test_type[3], 'selected.') result = rt.longest_one_block_test(input) self.__long_run_p_value.set(result[0]) self.__long_run_result.set(self.get_conclusion(result[1])) self.__test_results[3] = result if self.__chb_var[4].get() == 1: print(self.__test_type[4], 'selected.') result = mt.binary_matrix_rank_text(input) self.__matrix_p_value.set(result[0]) self.__matrix_result.set(self.get_conclusion(result[1])) self.__test_results[4] = result if self.__chb_var[5].get() == 1: print(self.__test_type[5], 'selected.') result = st.sepctral_test(input) self.__spectral_p_value.set(result[0]) self.__spectral_result.set(self.get_conclusion(result[1])) self.__test_results[5] = result if self.__chb_var[6].get() == 1: print(self.__test_type[6], 'selected.') result = tm.non_overlapping_test(input) self.__non_overlapping_p_value.set(result[0]) self.__non_overlapping_result.set(self.get_conclusion(result[1])) self.__test_results[6] = result if self.__chb_var[7].get() == 1: print(self.__test_type[7], 'selected.') result = tm.overlapping_patterns(input) self.__overlapping_p_value.set(result[0]) self.__overlapping_result.set(self.get_conclusion(result[1])) self.__test_results[7] = result if self.__chb_var[8].get() == 1: print(self.__test_type[8], 'selected.') result = ut.statistical_test(input) self.__statistical_p_value.set(result[0]) self.__statistical_result.set(self.get_conclusion(result[1])) self.__test_results[8] = result if self.__chb_var[9].get() == 1: print(self.__test_type[9], 'selected.') result = ct.linear_complexity_test(input) self.__linear_p_value.set(result[0]) self.__linear_result.set(self.get_conclusion(result[1])) self.__test_results[9] = result if self.__chb_var[10].get() == 1: print(self.__test_type[10], 'selected.') result = serial.serial_test(input) self.__serial_p_value_01.set(result[0][0]) self.__serial_p_result_01.set(self.get_conclusion(result[0][1])) self.__serial_p_value_02.set(result[1][0]) self.__serial_p_result_02.set(self.get_conclusion(result[1][1])) self.__test_results[10] = result if self.__chb_var[11].get() == 1: print(self.__test_type[11], 'selected.') result = aet.approximate_entropy_test(input) self.__entropy_p_value.set(result[0]) self.__entropy_result.set(self.get_conclusion(result[1])) self.__test_results[11] = result if self.__chb_var[12].get() == 1: print(self.__test_type[12], 'selected.') result = cst.cumulative_sums_test(input, 0) self.__cusum_f_p_value.set(result[0]) self.__cusum_f_result.set(self.get_conclusion(result[1])) self.__test_results[12] = result if self.__chb_var[13].get() == 1: print(self.__test_type[13], 'selected.') result = cst.cumulative_sums_test(input, 1) self.__cusum_r_p_value.set(result[0]) self.__cusum_r_result.set(self.get_conclusion(result[1])) self.__test_results[13] = result if self.__chb_var[14].get() == 1: print(self.__test_type[14], 'selected.') self.__excursion_result = ret.random_excursions_test(input) for item in self.__excursion_result: if self.__state_01.get() == item[0]: self.__xObs_chi_01.set(item[2]) self.__p_value_01.set(item[3]) self.__conclusion_01.set(self.get_conclusion(item[4])) self.__test_results[14] = self.__excursion_result if self.__chb_var[15].get() == 1: print(self.__test_type[15], 'selected.') __variant_result = ret.variant_test(input) self.__variant_result = ret.variant_test(input) for item in self.__variant_result: print(item) if self.__state_02.get() == item[0]: self.__count.set(item[2]) self.__p_value_02.set(item[3]) self.__conclusion_02.set(self.get_conclusion(item[4])) self.__test_results[15] = self.__variant_result