def test_o1_2(self): # Block of lines to Octal-1. common.request('../o1') input = ''.join(self.inputs) output = '''\ 0012, 0141, 0012, 0141, 0142, 0012, 0141, 0142, 0143, 0012, 0141, 0142, 0143, 0144, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0130, 0131, 0132, 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0012 ''' common.validate(input, output)
def test_x1_2(self): # Block of lines to Hexadecimal-1. common.request('../x1') input = ''.join(self.inputs) output = '''\ 0x0A, 0x61, 0x0A, 0x61, 0x62, 0x0A, 0x61, 0x62, 0x63, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A ''' common.validate(input, output)
def test_d2_1(self): # Single lines to Decimal-2. common.request('../d2') outputs = ['''\ 10 ''', '''\ 24842 ''', '''\ 24930, 10 ''', '''\ 24930, 25354 ''', '''\ 24930, 25444, 10 ''', '''\ 24930, 25444, 25958, 26472, 26890 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29450 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17162 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19722 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19790, 20304, 20818, 21332, 21846, 22282 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19790, 20304, 20818, 21332, 21846, 22360, 22874, 12337, 12851, 13365, 13834 '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_x4_1(self): # Single lines to Hexadecimal-4. common.request('../x4') outputs = ['''\ 0x0A ''', '''\ 0x610A ''', '''\ 0x61620A ''', '''\ 0x6162630A ''', '''\ 0x61626364, 0x0A ''', '''\ 0x61626364, 0x65666768, 0x690A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x7172730A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x430A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D0A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D4E, 0x4F505152, 0x53545556, 0x570A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D4E, 0x4F505152, 0x53545556, 0x5758595A, 0x30313233, 0x3435360A '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_o1_2(self): # Block of lines to Octal-1. common.request('../o1') input = ''.join(self.inputs) output = '''\ 0012, 0141, 0012, 0141, 0142, 0012, 0141, 0142, 0143, 0012, 0141, 0142, 0143, 0144, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0012, 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0130, 0131, 0132, 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0012 ''' common.validate(input, output)
def test_validate_message_without_attributes(validation_schema, verbose, correct_message, attribute): """Test the validation for improper payload.""" del correct_message[attribute] # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose)
def test_d4_1(self): # Single lines to Decimal-4. common.request('../d4') outputs = ['''\ 10 ''', '''\ 24842 ''', '''\ 6382090 ''', '''\ 1633837834 ''', '''\ 1633837924, 10 ''', '''\ 1633837924, 1701209960, 26890 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903325962 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 17162 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 1128547654, 1195919690, 1263291658 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 1128547654, 1195919690, 1263291726, 1330663762, 1398035798, 22282 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 1128547654, 1195919690, 1263291726, 1330663762, 1398035798, 1465407834, 808530483, 875902474 '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_1(self): # Single lines to Base64. common.request('../64') output = ['''\ Cg== ''', '''\ YQo= ''', '''\ YWIK ''', '''\ YWJjCg== ''', '''\ YWJjZAo= ''', '''\ YWJjZGVmZ2hpCg== ''', '''\ YWJjZGVmZ2hpamtsbW5vcHFycwo= ''', '''\ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkMK ''', '''\ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xNCg== ''', '''\ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWVwo= ''', '''\ YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0 NTYK ''' ] for input, output in zip(self.inputs, output): common.validate(input, output)
def test_x1_2(self): # Block of lines to Hexadecimal-1. common.request('../x1') input = ''.join(self.inputs) output = '''\ 0x0A, 0x61, 0x0A, 0x61, 0x62, 0x0A, 0x61, 0x62, 0x63, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x0A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A ''' common.validate(input, output)
def test_2(self): # Block of lines to Base64. common.request('/../64') output = '''\ CmEKYWIKYWJjCmFiY2QKYWJjZGVmZ2hpCmFiY2RlZmdoaWprbG1ub3BxcnMKYWJjZGVmZ2hpamts bW5vcHFyc3R1dnd6eXpBQkMKYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xN CmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3enl6QUJDREVGR0hJSktMTU5PUFFSU1RVVlcKYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd6eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTYK ''' common.validate(''.join(self.inputs), output)
def test_validate_message_wrong_org_id_attribute(validation_schema, verbose, correct_message): """Test the validation for improper payload.""" # check with negative integer correct_message["OrgID"] = -1 # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with string not representing number correct_message["OrgID"] = "foobar" # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with string representing number correct_message["OrgID"] = "123456" # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with different data type correct_message["OrgID"] = [] # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose)
def test_validate_message_wrong_response_metadata_attribute( validation_schema, verbose, correct_message): """Test the validation for improper payload.""" # check with string not representing number correct_message["ResponseMetadata"] = "foobar" # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with number correct_message["ResponseMetadata"] = 123456 # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with different data type correct_message["ResponseMetadata"] = [] # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with different data type correct_message["ResponseMetadata"] = {} # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose)
def test_validate_message_wrong_attributes(validation_schema, verbose, correct_message, attribute): """Test the validation for improper payload.""" # check with number correct_message[attribute] = 123456 # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with different data type correct_message[attribute] = [] # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose)
def solve_lookahead(initial_board, verbose=False): candidates = {(i, j): set(range(1, 10)) for i in range(9) for j in range(9)} possibilities = [(candidates, initial_board)] pp = possibilities[0] recursive_single_elimination(pp[0], pp[1]) if is_solved(possibilities[0][1]): return possibilities[0][1] while True: new_possibilities = [] for p in possibilities: new_possibilities.extend(lookahead(p[0], p[1])) if verbose: print('Increasing from', len(possibilities), 'to', len(new_possibilities)) valid_possibilities = [] for p in new_possibilities: recursive_single_elimination(p[0], p[1]) if validate(p[1]): valid_possibilities.append(p) if verbose: diff = len(new_possibilities) - len(valid_possibilities) if diff: print('Removed:', diff, 'invalid options') if any(is_solved(p[1]) for p in valid_possibilities): return [p[1] for p in valid_possibilities if is_solved(p[1])] possibilities = valid_possibilities if verbose: print('Length:', len(possibilities))
def test_x4_2(self): # Block of lines to Hexadecimal-4. common.request('../x4') input = ''.join(self.inputs) output = '''\ 0x0A610A61, 0x620A6162, 0x630A6162, 0x63640A61, 0x62636465, 0x66676869, 0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x74757677, 0x7A797A41, 0x42430A61, 0x62636465, 0x66676869, 0x6A6B6C6D, 0x6E6F7071, 0x72737475, 0x76777A79, 0x7A414243, 0x44454647, 0x48494A4B, 0x4C4D0A61, 0x62636465, 0x66676869, 0x6A6B6C6D, 0x6E6F7071, 0x72737475, 0x76777A79, 0x7A414243, 0x44454647, 0x48494A4B, 0x4C4D4E4F, 0x50515253, 0x54555657, 0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x74757677, 0x7A797A41, 0x42434445, 0x46474849, 0x4A4B4C4D, 0x4E4F5051, 0x52535455, 0x56575859, 0x5A303132, 0x33343536, 0x0A ''' common.validate(input, output)
def test_x4_2(self): # Block of lines to Hexadecimal-4. common.request('../x4') input = ''.join(self.inputs) output = '''\ 0x0A610A61, 0x620A6162, 0x630A6162, 0x63640A61, 0x62636465, 0x66676869, 0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x74757677, 0x7A797A41, 0x42430A61, 0x62636465, 0x66676869, 0x6A6B6C6D, 0x6E6F7071, 0x72737475, 0x76777A79, 0x7A414243, 0x44454647, 0x48494A4B, 0x4C4D0A61, 0x62636465, 0x66676869, 0x6A6B6C6D, 0x6E6F7071, 0x72737475, 0x76777A79, 0x7A414243, 0x44454647, 0x48494A4B, 0x4C4D4E4F, 0x50515253, 0x54555657, 0x0A616263, 0x64656667, 0x68696A6B, 0x6C6D6E6F, 0x70717273, 0x74757677, 0x7A797A41, 0x42434445, 0x46474849, 0x4A4B4C4D, 0x4E4F5051, 0x52535455, 0x56575859, 0x5A303132, 0x33343536, 0x0A ''' common.validate(input, output)
def test_o1_1(self): # Single lines to Octal-1. common.request('../o1') outputs = [ '''\ 0012 ''', '''\ 0141, 0012 ''', '''\ 0141, 0142, 0012 ''', '''\ 0141, 0142, 0143, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0130, 0131, 0132, 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0012 ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_x1_1(self): # Single lines to Hexadecimal-1. common.request('../x1') outputs = [ '''\ 0x0A ''', '''\ 0x61, 0x0A ''', '''\ 0x61, 0x62, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_d4_2(self): # Block of lines to Decimal-4. common.request('../d4') input = ''.join(self.inputs) output = '''\ 174131809, 1644847458, 1661624674, 1667500641, 1650680933, 1718052969, 174154339, 1684366951, 1751738987, 1819111023, 1886483059, 174154339, 1684366951, 1751738987, 1819111023, 1886483059, 1953855095, 2054781505, 1111689825, 1650680933, 1718052969, 1785425005, 1852797041, 1920169077, 1987541625, 2051097155, 1145390663, 1212762699, 1280117345, 1650680933, 1718052969, 1785425005, 1852797041, 1920169077, 1987541625, 2051097155, 1145390663, 1212762699, 1280134735, 1347506771, 1414878807, 174154339, 1684366951, 1751738987, 1819111023, 1886483059, 1953855095, 2054781505, 1111704645, 1179076681, 1246448717, 1313820753, 1381192789, 1448564825, 1513107762, 859059510, 10 ''' common.validate(input, output)
def test_d2_2(self): # Block of lines to Decimal-2. common.request('../d2') input = ''.join(self.inputs) output = '''\ 2657, 2657, 25098, 24930, 25354, 24930, 25444, 2657, 25187, 25701, 26215, 26729, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 17477, 17991, 18505, 19019, 19533, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 17477, 17991, 18505, 19019, 19533, 20047, 20561, 21075, 21589, 22103, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 17477, 17991, 18505, 19019, 19533, 20047, 20561, 21075, 21589, 22103, 22617, 23088, 12594, 13108, 13622, 10 ''' common.validate(input, output)
def test_d2_2(self): # Block of lines to Decimal-2. common.request('../d2') input = ''.join(self.inputs) output = '''\ 2657, 2657, 25098, 24930, 25354, 24930, 25444, 2657, 25187, 25701, 26215, 26729, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 17477, 17991, 18505, 19019, 19533, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 17477, 17991, 18505, 19019, 19533, 20047, 20561, 21075, 21589, 22103, 2657, 25187, 25701, 26215, 26729, 27243, 27757, 28271, 28785, 29299, 29813, 30327, 31353, 31297, 16963, 17477, 17991, 18505, 19019, 19533, 20047, 20561, 21075, 21589, 22103, 22617, 23088, 12594, 13108, 13622, 10 ''' common.validate(input, output)
def test_d4_2(self): # Block of lines to Decimal-4. common.request('../d4') input = ''.join(self.inputs) output = '''\ 174131809, 1644847458, 1661624674, 1667500641, 1650680933, 1718052969, 174154339, 1684366951, 1751738987, 1819111023, 1886483059, 174154339, 1684366951, 1751738987, 1819111023, 1886483059, 1953855095, 2054781505, 1111689825, 1650680933, 1718052969, 1785425005, 1852797041, 1920169077, 1987541625, 2051097155, 1145390663, 1212762699, 1280117345, 1650680933, 1718052969, 1785425005, 1852797041, 1920169077, 1987541625, 2051097155, 1145390663, 1212762699, 1280134735, 1347506771, 1414878807, 174154339, 1684366951, 1751738987, 1819111023, 1886483059, 1953855095, 2054781505, 1111704645, 1179076681, 1246448717, 1313820753, 1381192789, 1448564825, 1513107762, 859059510, 10 ''' common.validate(input, output)
def test_o1_1(self): # Single lines to Octal-1. common.request('../o1') outputs = ['''\ 0012 ''', '''\ 0141, 0012 ''', '''\ 0141, 0142, 0012 ''', '''\ 0141, 0142, 0143, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0012 ''', '''\ 0141, 0142, 0143, 0144, 0145, 0146, 0147, 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, 0172, 0171, 0172, 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, 0130, 0131, 0132, 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0012 '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_x1_1(self): # Single lines to Hexadecimal-1. common.request('../x1') outputs = ['''\ 0x0A ''', '''\ 0x61, 0x0A ''', '''\ 0x61, 0x62, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x0A ''', '''\ 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7A, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_1(): # Block of lines from Quoted Printable. common.request('qp..x1') output = '''\ 0x44, 0x65, 0x61, 0x72, 0x20, 0xDE, 0x6F, 0x72, 0x76, 0x61, 0x72, 0x64, 0xF0, 0x75, 0x72, 0x2C, 0x0A, 0x0A, 0xAB, 0x20, 0x4F, 0xF9, 0x20, 0x71, 0x75, 0x27, 0x69, 0x6C, 0x20, 0x72, 0xE9, 0x73, 0x69, 0x64, 0x65, 0x2C, 0x20, 0xE0, 0x20, 0x4E, 0xEE, 0x6D, 0x65, 0x73, 0x20, 0x6F, 0x75, 0x20, 0x6D, 0xEA, 0x6D, 0x65, 0x20, 0x43, 0x61, 0x70, 0x68, 0x61, 0x72, 0x6E, 0x61, 0xFC, 0x6D, 0x2C, 0x20, 0x74, 0x6F, 0x75, 0x74, 0x20, 0x46, 0x72, 0x61, 0x6E, 0xE7, 0x61, 0x69, 0x73, 0x20, 0x69, 0x6E, 0x73, 0x63, 0x72, 0x69, 0x74, 0x0A, 0x61, 0x75, 0x20, 0x72, 0xF4, 0x6C, 0x65, 0x20, 0x70, 0x61, 0x79, 0x65, 0x72, 0x61, 0x20, 0x73, 0x6F, 0x6E, 0x20, 0x64, 0xFB, 0x20, 0x64, 0xE8, 0x73, 0x20, 0x61, 0x76, 0x61, 0x6E, 0x74, 0x20, 0x4E, 0x6F, 0xEB, 0x6C, 0x2C, 0x20, 0x71, 0x75, 0x27, 0x69, 0x6C, 0x20, 0x73, 0x6F, 0x69, 0x74, 0x20, 0x6E, 0x61, 0xEF, 0x66, 0x20, 0x6F, 0x75, 0x20, 0x72, 0xE2, 0x6C, 0x65, 0x75, 0x72, 0x2E, 0x20, 0xBB, 0x0A, 0x49, 0x6E, 0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x6C, 0x61, 0x73, 0x74, 0x20, 0x6C, 0x69, 0x6E, 0x65 ''' common.validate(input, output)
def test_1(): # Block of lines from Quoted Printable. common.request('qp..x1') output = '''\ 0x44, 0x65, 0x61, 0x72, 0x20, 0xDE, 0x6F, 0x72, 0x76, 0x61, 0x72, 0x64, 0xF0, 0x75, 0x72, 0x2C, 0x0A, 0x0A, 0xAB, 0x20, 0x4F, 0xF9, 0x20, 0x71, 0x75, 0x27, 0x69, 0x6C, 0x20, 0x72, 0xE9, 0x73, 0x69, 0x64, 0x65, 0x2C, 0x20, 0xE0, 0x20, 0x4E, 0xEE, 0x6D, 0x65, 0x73, 0x20, 0x6F, 0x75, 0x20, 0x6D, 0xEA, 0x6D, 0x65, 0x20, 0x43, 0x61, 0x70, 0x68, 0x61, 0x72, 0x6E, 0x61, 0xFC, 0x6D, 0x2C, 0x20, 0x74, 0x6F, 0x75, 0x74, 0x20, 0x46, 0x72, 0x61, 0x6E, 0xE7, 0x61, 0x69, 0x73, 0x20, 0x69, 0x6E, 0x73, 0x63, 0x72, 0x69, 0x74, 0x0A, 0x61, 0x75, 0x20, 0x72, 0xF4, 0x6C, 0x65, 0x20, 0x70, 0x61, 0x79, 0x65, 0x72, 0x61, 0x20, 0x73, 0x6F, 0x6E, 0x20, 0x64, 0xFB, 0x20, 0x64, 0xE8, 0x73, 0x20, 0x61, 0x76, 0x61, 0x6E, 0x74, 0x20, 0x4E, 0x6F, 0xEB, 0x6C, 0x2C, 0x20, 0x71, 0x75, 0x27, 0x69, 0x6C, 0x20, 0x73, 0x6F, 0x69, 0x74, 0x20, 0x6E, 0x61, 0xEF, 0x66, 0x20, 0x6F, 0x75, 0x20, 0x72, 0xE2, 0x6C, 0x65, 0x75, 0x72, 0x2E, 0x20, 0xBB, 0x0A, 0x49, 0x6E, 0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x65, 0x20, 0x6C, 0x61, 0x73, 0x74, 0x20, 0x6C, 0x69, 0x6E, 0x65 ''' common.validate(input, output)
def test_x2_1(self): # Single lines to Hexadecimal-2. common.request('../x2') outputs = [ '''\ 0x0A ''', '''\ 0x610A ''', '''\ 0x6162, 0x0A ''', '''\ 0x6162, 0x630A ''', '''\ 0x6162, 0x6364, 0x0A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x690A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x730A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x430A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x4344, 0x4546, 0x4748, 0x494A, 0x4B4C, 0x4D0A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x4344, 0x4546, 0x4748, 0x494A, 0x4B4C, 0x4D4E, 0x4F50, 0x5152, 0x5354, 0x5556, 0x570A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x4344, 0x4546, 0x4748, 0x494A, 0x4B4C, 0x4D4E, 0x4F50, 0x5152, 0x5354, 0x5556, 0x5758, 0x595A, 0x3031, 0x3233, 0x3435, 0x360A ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_o4_1(self): # Single lines to Octal-4. common.request('../o4') outputs = [ '''\ 0012 ''', '''\ 0060412 ''', '''\ 030261012 ''', '''\ 014130461412 ''', '''\ 014130461544, 0012 ''', '''\ 014130461544, 014531463550, 0064412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 0041412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 010321042506, 010722044512, 011323046412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 010321042506, 010722044512, 011323046516, 011724050522, 012325052526, 0053412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 010321042506, 010722044512, 011323046516, 011724050522, 012325052526, 012726054532, 006014231063, 006415233012 ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_d1_1(self): # Single lines to Decimal-1. common.request('../d1') outputs = [ '''\ 10 ''', '''\ 97, 10 ''', '''\ 97, 98, 10 ''', '''\ 97, 98, 99, 10 ''', '''\ 97, 98, 99, 100, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 48, 49, 50, 51, 52, 53, 54, 10 ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_o2_1(self): # Single lines to Octal-2. common.request('../o2') outputs = [ '''\ 0012 ''', '''\ 0060412 ''', '''\ 0060542, 0012 ''', '''\ 0060542, 0061412 ''', '''\ 0060542, 0061544, 0012 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041504, 0042506, 0043510, 0044512, 0045514, 0046412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041504, 0042506, 0043510, 0044512, 0045514, 0046516, 0047520, 0050522, 0051524, 0052526, 0053412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041504, 0042506, 0043510, 0044512, 0045514, 0046516, 0047520, 0050522, 0051524, 0052526, 0053530, 0054532, 0030061, 0031063, 0032065, 0033012 ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_o4_2(self): # Block of lines to Octal-4. common.request('../o4') input = ''.join(self.inputs) output = '''\ 001230205141, 014202460542, 014302460542, 014331005141, 014230662145, 014631664151, 001230261143, 014431263147, 015032265153, 015433267157, 016034271163, 001230261143, 014431263147, 015032265153, 015433267157, 016034271163, 016435273167, 017236275101, 010220605141, 014230662145, 014631664151, 015232666155, 015633670161, 016234672165, 016635675171, 017220241103, 010421243107, 011022245113, 011423205141, 014230662145, 014631664151, 015232666155, 015633670161, 016234672165, 016635675171, 017220241103, 010421243107, 011022245113, 011423247117, 012024251123, 012425253127, 001230261143, 014431263147, 015032265153, 015433267157, 016034271163, 016435273167, 017236275101, 010220642105, 010621644111, 011222646115, 011623650121, 012224652125, 012625654131, 013214030462, 006315032466, 0012 ''' common.validate(input, output)
def test_o2_2(self): # Block of lines to Octal-2. common.request('../o2') input = ''.join(self.inputs) output = '''\ 0005141, 0005141, 0061012, 0060542, 0061412, 0060542, 0061544, 0005141, 0061143, 0062145, 0063147, 0064151, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0042105, 0043107, 0044111, 0045113, 0046115, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0042105, 0043107, 0044111, 0045113, 0046115, 0047117, 0050121, 0051123, 0052125, 0053127, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0042105, 0043107, 0044111, 0045113, 0046115, 0047117, 0050121, 0051123, 0052125, 0053127, 0054131, 0055060, 0030462, 0031464, 0032466, 0012 ''' common.validate(input, output)
def test_d1_2(self): # Block of lines to Decimal-1. common.request('../d1') input = ''.join(self.inputs) output = '''\ 10, 97, 10, 97, 98, 10, 97, 98, 99, 10, 97, 98, 99, 100, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 48, 49, 50, 51, 52, 53, 54, 10 ''' common.validate(input, output)
def test_o2_2(self): # Block of lines to Octal-2. common.request('../o2') input = ''.join(self.inputs) output = '''\ 0005141, 0005141, 0061012, 0060542, 0061412, 0060542, 0061544, 0005141, 0061143, 0062145, 0063147, 0064151, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0042105, 0043107, 0044111, 0045113, 0046115, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0042105, 0043107, 0044111, 0045113, 0046115, 0047117, 0050121, 0051123, 0052125, 0053127, 0005141, 0061143, 0062145, 0063147, 0064151, 0065153, 0066155, 0067157, 0070161, 0071163, 0072165, 0073167, 0075171, 0075101, 0041103, 0042105, 0043107, 0044111, 0045113, 0046115, 0047117, 0050121, 0051123, 0052125, 0053127, 0054131, 0055060, 0030462, 0031464, 0032466, 0012 ''' common.validate(input, output)
def test_d1_2(self): # Block of lines to Decimal-1. common.request('../d1') input = ''.join(self.inputs) output = '''\ 10, 97, 10, 97, 98, 10, 97, 98, 99, 10, 97, 98, 99, 100, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 10, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 48, 49, 50, 51, 52, 53, 54, 10 ''' common.validate(input, output)
def test_o4_2(self): # Block of lines to Octal-4. common.request('../o4') input = ''.join(self.inputs) output = '''\ 001230205141, 014202460542, 014302460542, 014331005141, 014230662145, 014631664151, 001230261143, 014431263147, 015032265153, 015433267157, 016034271163, 001230261143, 014431263147, 015032265153, 015433267157, 016034271163, 016435273167, 017236275101, 010220605141, 014230662145, 014631664151, 015232666155, 015633670161, 016234672165, 016635675171, 017220241103, 010421243107, 011022245113, 011423205141, 014230662145, 014631664151, 015232666155, 015633670161, 016234672165, 016635675171, 017220241103, 010421243107, 011022245113, 011423247117, 012024251123, 012425253127, 001230261143, 014431263147, 015032265153, 015433267157, 016034271163, 016435273167, 017236275101, 010220642105, 010621644111, 011222646115, 011623650121, 012224652125, 012625654131, 013214030462, 006315032466, 0012 ''' common.validate(input, output)
def test_x2_2(self): # Block of lines to Hexadecimal-2. common.request('../x2') input = ''.join(self.inputs) output = '''\ 0x0A61, 0x0A61, 0x620A, 0x6162, 0x630A, 0x6162, 0x6364, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x4445, 0x4647, 0x4849, 0x4A4B, 0x4C4D, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x4445, 0x4647, 0x4849, 0x4A4B, 0x4C4D, 0x4E4F, 0x5051, 0x5253, 0x5455, 0x5657, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x4445, 0x4647, 0x4849, 0x4A4B, 0x4C4D, 0x4E4F, 0x5051, 0x5253, 0x5455, 0x5657, 0x5859, 0x5A30, 0x3132, 0x3334, 0x3536, 0x0A ''' common.validate(input, output)
def test_x2_2(self): # Block of lines to Hexadecimal-2. common.request('../x2') input = ''.join(self.inputs) output = '''\ 0x0A61, 0x0A61, 0x620A, 0x6162, 0x630A, 0x6162, 0x6364, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x4445, 0x4647, 0x4849, 0x4A4B, 0x4C4D, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x4445, 0x4647, 0x4849, 0x4A4B, 0x4C4D, 0x4E4F, 0x5051, 0x5253, 0x5455, 0x5657, 0x0A61, 0x6263, 0x6465, 0x6667, 0x6869, 0x6A6B, 0x6C6D, 0x6E6F, 0x7071, 0x7273, 0x7475, 0x7677, 0x7A79, 0x7A41, 0x4243, 0x4445, 0x4647, 0x4849, 0x4A4B, 0x4C4D, 0x4E4F, 0x5051, 0x5253, 0x5455, 0x5657, 0x5859, 0x5A30, 0x3132, 0x3334, 0x3536, 0x0A ''' common.validate(input, output)
def test_o2_1(self): # Single lines to Octal-2. common.request('../o2') outputs = ['''\ 0012 ''', '''\ 0060412 ''', '''\ 0060542, 0012 ''', '''\ 0060542, 0061412 ''', '''\ 0060542, 0061544, 0012 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041504, 0042506, 0043510, 0044512, 0045514, 0046412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041504, 0042506, 0043510, 0044512, 0045514, 0046516, 0047520, 0050522, 0051524, 0052526, 0053412 ''', '''\ 0060542, 0061544, 0062546, 0063550, 0064552, 0065554, 0066556, 0067560, 0070562, 0071564, 0072566, 0073572, 0074572, 0040502, 0041504, 0042506, 0043510, 0044512, 0045514, 0046516, 0047520, 0050522, 0051524, 0052526, 0053530, 0054532, 0030061, 0031063, 0032065, 0033012 '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_o4_1(self): # Single lines to Octal-4. common.request('../o4') outputs = ['''\ 0012 ''', '''\ 0060412 ''', '''\ 030261012 ''', '''\ 014130461412 ''', '''\ 014130461544, 0012 ''', '''\ 014130461544, 014531463550, 0064412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 0041412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 010321042506, 010722044512, 011323046412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 010321042506, 010722044512, 011323046516, 011724050522, 012325052526, 0053412 ''', '''\ 014130461544, 014531463550, 015132465554, 015533467560, 016134471564, 016535473572, 017136440502, 010321042506, 010722044512, 011323046516, 011724050522, 012325052526, 012726054532, 006014231063, 006415233012 '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_d1_1(self): # Single lines to Decimal-1. common.request('../d1') outputs = ['''\ 10 ''', '''\ 97, 10 ''', '''\ 97, 98, 10 ''', '''\ 97, 98, 99, 10 ''', '''\ 97, 98, 99, 100, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 10 ''', '''\ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, 121, 122, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 48, 49, 50, 51, 52, 53, 54, 10 '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_x2_1(self): # Single lines to Hexadecimal-2. common.request('../x2') outputs = ['''\ 0x0A ''', '''\ 0x610A ''', '''\ 0x6162, 0x0A ''', '''\ 0x6162, 0x630A ''', '''\ 0x6162, 0x6364, 0x0A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x690A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x730A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x430A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x4344, 0x4546, 0x4748, 0x494A, 0x4B4C, 0x4D0A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x4344, 0x4546, 0x4748, 0x494A, 0x4B4C, 0x4D4E, 0x4F50, 0x5152, 0x5354, 0x5556, 0x570A ''', '''\ 0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6E, 0x6F70, 0x7172, 0x7374, 0x7576, 0x777A, 0x797A, 0x4142, 0x4344, 0x4546, 0x4748, 0x494A, 0x4B4C, 0x4D4E, 0x4F50, 0x5152, 0x5354, 0x5556, 0x5758, 0x595A, 0x3031, 0x3233, 0x3435, 0x360A '''] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_d2_1(self): # Single lines to Decimal-2. common.request('../d2') outputs = [ '''\ 10 ''', '''\ 24842 ''', '''\ 24930, 10 ''', '''\ 24930, 25354 ''', '''\ 24930, 25444, 10 ''', '''\ 24930, 25444, 25958, 26472, 26890 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29450 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17162 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19722 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19790, 20304, 20818, 21332, 21846, 22282 ''', '''\ 24930, 25444, 25958, 26472, 26986, 27500, 28014, 28528, 29042, 29556, 30070, 30586, 31098, 16706, 17220, 17734, 18248, 18762, 19276, 19790, 20304, 20818, 21332, 21846, 22360, 22874, 12337, 12851, 13365, 13834 ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_x4_1(self): # Single lines to Hexadecimal-4. common.request('../x4') outputs = [ '''\ 0x0A ''', '''\ 0x610A ''', '''\ 0x61620A ''', '''\ 0x6162630A ''', '''\ 0x61626364, 0x0A ''', '''\ 0x61626364, 0x65666768, 0x690A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x7172730A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x430A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D0A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D4E, 0x4F505152, 0x53545556, 0x570A ''', '''\ 0x61626364, 0x65666768, 0x696A6B6C, 0x6D6E6F70, 0x71727374, 0x7576777A, 0x797A4142, 0x43444546, 0x4748494A, 0x4B4C4D4E, 0x4F505152, 0x53545556, 0x5758595A, 0x30313233, 0x3435360A ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def test_d4_1(self): # Single lines to Decimal-4. common.request('../d4') outputs = [ '''\ 10 ''', '''\ 24842 ''', '''\ 6382090 ''', '''\ 1633837834 ''', '''\ 1633837924, 10 ''', '''\ 1633837924, 1701209960, 26890 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903325962 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 17162 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 1128547654, 1195919690, 1263291658 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 1128547654, 1195919690, 1263291726, 1330663762, 1398035798, 22282 ''', '''\ 1633837924, 1701209960, 1768581996, 1835954032, 1903326068, 1970698106, 2038055234, 1128547654, 1195919690, 1263291726, 1330663762, 1398035798, 1465407834, 808530483, 875902474 ''' ] for input, output in zip(self.inputs, outputs): common.validate(input, output)
def get_input_for_sold_between(): """ Provides input data for get_items_sold_between function Args: None Returns: list which contains dates for get_items_sold_between function purpose """ title_list = ["Year from", "Month from", "Day from", "Year to", "Month to", "Day to"] title = "Please input desired time range" type_list = ["int", "month", "day", "int", "month", "day"] inputs = ui.get_inputs(title_list, title) inputs = common.validate(inputs, title_list, type_list) return inputs
def test_validate_message_wrong_report_attributes(validation_schema, verbose, correct_message, attribute): """Test the validation for improper payload.""" correct_message["report"][0][attribute] = b"foobar" # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with number correct_message["report"][0][attribute] = -123456 # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose) # check with different data type correct_message["report"][0][attribute] = None # it should fail with pytest.raises(Invalid) as excinfo: validate(schema, correct_message, verbose)
def main(): global best_acc args.out = args.dataset + '@N_' + str(args.num_max) + '_r_' if args.imb_ratio_l == args.imb_ratio_u: args.out += str(args.imb_ratio_l) + '_' + args.semi_method else: args.out += str(args.imb_ratio_l) + '_' + str( args.imb_ratio_u) + '_' + args.semi_method if args.darp: args.out += '_darp_alpha' + str(args.alpha) + '_iterT' + str( args.iter_T) if not os.path.isdir(args.out): mkdir_p(args.out) # Data N_SAMPLES_PER_CLASS = make_imb_data(args.num_max, args.num_class, args.imb_ratio_l) U_SAMPLES_PER_CLASS = make_imb_data(args.ratio * args.num_max, args.num_class, args.imb_ratio_u) N_SAMPLES_PER_CLASS_T = torch.Tensor(N_SAMPLES_PER_CLASS) print(args.out) if args.dataset == 'cifar10': print(f'==> Preparing imbalanced CIFAR-10') train_labeled_set, train_unlabeled_set, test_set = get_cifar10( '/home/jaehyung/data', N_SAMPLES_PER_CLASS, U_SAMPLES_PER_CLASS, args.out) elif args.dataset == 'stl10': print(f'==> Preparing imbalanced STL-10') train_labeled_set, train_unlabeled_set, test_set = get_stl10( '/home/jaehyung/data', N_SAMPLES_PER_CLASS, args.out) elif args.dataset == 'cifar100': print(f'==> Preparing imbalanced CIFAR-100') train_labeled_set, train_unlabeled_set, test_set = get_cifar100( '/home/jaehyung/data', N_SAMPLES_PER_CLASS, U_SAMPLES_PER_CLASS, args.out) labeled_trainloader = data.DataLoader(train_labeled_set, batch_size=args.batch_size, shuffle=True, num_workers=4, drop_last=True) unlabeled_trainloader = data.DataLoader(train_unlabeled_set, batch_size=args.batch_size, shuffle=True, num_workers=4, drop_last=True) test_loader = data.DataLoader(test_set, batch_size=args.batch_size, shuffle=False, num_workers=4) # Model print("==> creating WRN-28-2") def create_model(ema=False): model = models.WRN(2, args.num_class) model = model.cuda() if ema: for param in model.parameters(): param.detach_() return model model = create_model() ema_model = create_model(ema=True) cudnn.benchmark = True print(' Total params: %.2fM' % (sum(p.numel() for p in model.parameters()) / 1000000.0)) train_criterion = SemiLoss() criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters(), lr=args.lr) ema_optimizer = WeightEMA(model, ema_model, lr=args.lr, alpha=args.ema_decay) start_epoch = 0 # Resume title = 'Imbalanced' + '-' + args.dataset + '-' + args.semi_method if args.resume: # Load checkpoint. print('==> Resuming from checkpoint..') assert os.path.isfile( args.resume), 'Error: no checkpoint directory found!' args.out = os.path.dirname(args.resume) checkpoint = torch.load(args.resume) start_epoch = checkpoint['epoch'] model.load_state_dict(checkpoint['state_dict']) ema_model.load_state_dict(checkpoint['ema_state_dict']) optimizer.load_state_dict(checkpoint['optimizer']) logger = Logger(os.path.join(args.out, 'log.txt'), title=title, resume=True) else: logger = Logger(os.path.join(args.out, 'log.txt'), title=title) logger.set_names([ 'Train Loss', 'Train Loss X', 'Train Loss U', 'Test Loss', 'Test Acc.', 'Test GM.' ]) test_accs = [] test_gms = [] # Default values for MixMatch and DARP emp_distb_u = torch.ones(args.num_class) / args.num_class pseudo_orig = torch.ones(len(train_unlabeled_set.data), args.num_class) / args.num_class pseudo_refine = torch.ones(len(train_unlabeled_set.data), args.num_class) / args.num_class # Main function for epoch in range(start_epoch, args.epochs): print('\nEpoch: [%d | %d] LR: %f' % (epoch + 1, args.epochs, state['lr'])) # Use the estimated distribution of unlabeled data if args.est: if args.dataset == 'cifar10': est_name = './estimation/cifar10@N_1500_r_{}_{}_estim.npy'.format( args.imb_ratio_l, args.imb_ratio_u) else: est_name = './estimation/stl10@N_450_r_{}_estim.npy'.format( args.imb_ratio_l) est_disb = np.load(est_name) target_disb = len(train_unlabeled_set.data) * torch.Tensor( est_disb) / np.sum(est_disb) # Use the inferred distribution with labeled data else: target_disb = N_SAMPLES_PER_CLASS_T * len( train_unlabeled_set.data) / sum(N_SAMPLES_PER_CLASS) train_loss, train_loss_x, train_loss_u, emp_distb_u, pseudo_orig, pseudo_refine = trains( args, labeled_trainloader, unlabeled_trainloader, model, optimizer, ema_optimizer, train_criterion, epoch, use_cuda, target_disb, emp_distb_u, pseudo_orig, pseudo_refine) # Evaluation part test_loss, test_acc, test_cls, test_gm = validate( test_loader, ema_model, criterion, use_cuda, mode='Test Stats', num_class=args.num_class) # Append logger file logger.append([ train_loss, train_loss_x, train_loss_u, test_loss, test_acc, test_gm ]) # Save models save_checkpoint( { 'epoch': epoch + 1, 'state_dict': model.state_dict(), 'ema_state_dict': ema_model.state_dict(), 'optimizer': optimizer.state_dict(), }, epoch + 1, args.out) test_accs.append(test_acc) test_gms.append(test_gm) logger.close() # Print the final results print('Mean bAcc:') print(np.mean(test_accs[-20:])) print('Mean GM:') print(np.mean(test_gms[-20:])) print('Name of saved folder:') print(args.out)
def test_2(self): common.request('../,t-bambara/64..bambara/qp') common.validate(self.output, self.input)
def test_1(self): common.request('../,wolof/qp..t-wolof/64') common.validate(self.input, self.output)
def test_1(self): # Block of lines to Java. common.request('l1/qp..java') common.validate(input, output)
def test_1(self): common.request('../,bambara/qp..t-bambara/64') common.validate(self.input, self.output)
def test_2(self): common.request('../,t-wolof/64..wolof/qp') common.validate(self.output, self.input)
def test_1(self): common.request('../,fulfulde/qp..t-fulfulde/64') common.validate(self.input, self.output)
def test_2(self): common.request ('../,t-fulfulde/64..fulfulde/qp') common.validate(self.output, self.input)
def test_1(self): common.request('../,lingala/qp..t-lingala/64') common.validate(self.input, self.output)
def test_2(self): common.request('../,t-lingala/64..lingala/qp') common.validate(self.output, self.input)
def test_1(self): common.request('test16..x2,us..count') common.validate('', self.output)