Exemple #1
0
# 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',
Exemple #2
0
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]))
Exemple #3
0
    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