示例#1
0
 def test_multiple_packets(self):
     packets: List[Packet] = read_packets("110100010100101001000100100")
     self.assertEqual(len(packets), 2)
     first, second = packets
     self.assertEqual(first.packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(first.data), 10)
     self.assertEqual(second.packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(second.data), 20)
示例#2
0
 def test_single_literal_packet(self):
     packets = read_packets("110100101111111000101000")
     self.assertEqual(len(packets), 1)
     packet = packets[0]
     self.assertEqual(packet.packet_type, PacketType.LITERAL)
     self.assertEqual(packet.packet_version, 6)
     self.assertEqual(packet.data, "011111100101")
     self.assertEqual(packet.packets, [])
示例#3
0
 def test_length_operator(self):
     packets = read_packets(
         "00111000000000000110111101000101001010010001001000000000")
     self.assertEqual(len(packets), 1)
     packet = packets[0]
     self.assertNotEqual(packet.packet_type, PacketType.LITERAL)
     self.assertEqual(packet.packet_version, 1)
     self.assertEqual(len(packet.packets), 2)
示例#4
0
 def test_multiple_packets_count_bound(self):
     packets: List[Packet] = read_packets(
         "110100010100101001000100100110100010100101001000100100",
         max_count=3)
     self.assertEqual(len(packets), 3)
     first, second, third = packets
     self.assertEqual(first.packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(first.data), 10)
     self.assertEqual(second.packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(second.data), 20)
     self.assertEqual(third.packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(third.data), 10)
示例#5
0
 def test_count_operator(self):
     packets = read_packets(
         "11101110000000001101010000001100100000100011000001100000")
     self.assertEqual(len(packets), 1)
     packet = packets[0]
     self.assertNotEqual(packet.packet_type, PacketType.LITERAL)
     self.assertEqual(packet.packet_version, 7)
     self.assertEqual(len(packet.packets), 3)
     sub_packets: List[Packet] = [sub for sub in packet.packets]
     self.assertEqual(sub_packets[0].packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(sub_packets[0].data), 1)
     self.assertEqual(sub_packets[1].packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(sub_packets[1].data), 2)
     self.assertEqual(sub_packets[2].packet_type, PacketType.LITERAL)
     self.assertEqual(bin_to_dex(sub_packets[2].data), 3)
示例#6
0
    def test_sample_one(self):
        bin_code = expand("8A004A801A8002F478")
        packets = read_packets(bin_code)
        self.assertEqual(len(packets), 1)
        self.assertNotEqual(packets[0].packet_type, PacketType.LITERAL)
        self.assertEqual(packets[0].packet_version, 4)
        self.assertEqual(len(packets[0].packets), 1)
        self.assertNotEqual(packets[0].packets[0].packet_type,
                            PacketType.LITERAL)
        self.assertEqual(packets[0].packets[0].packet_version, 1)
        self.assertEqual(len(packets[0].packets[0].packets), 1)
        self.assertNotEqual(packets[0].packets[0].packets[0].packet_type,
                            PacketType.LITERAL)
        self.assertEqual(packets[0].packets[0].packets[0].packet_version, 5)
        self.assertEqual(
            packets[0].packets[0].packets[0].packets[0].packet_type,
            PacketType.LITERAL)
        self.assertEqual(
            packets[0].packets[0].packets[0].packets[0].packet_version, 6)

        self.assertEqual(check_sum(packets[0]), 16)
示例#7
0
 def test_less_than(self):
     bin_code = expand("D8005AC2A8F0")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 1)
示例#8
0
 def test_sample_file(self):
     bin_code = load_from_file(get_test_file_path("samples/d16.txt"))
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(check_sum(packets[0]), 31)
示例#9
0
 def test_sample_three(self):
     bin_code = expand("C0015000016115A2E0802F182340")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(check_sum(packets[0]), 23)
示例#10
0
 def test_sum(self):
     bin_code = expand("C200B40A82")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 3)
示例#11
0
 def test_literal(self):
     bin_code = expand("D2FE28")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 2021)
示例#12
0
 def test_equal(self):
     bin_code = expand("9C005AC2F8F0")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 0)
示例#13
0
 def test_example(self):
     bin_code = expand("9C0141080250320F1802104A08")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 1)
示例#14
0
 def test_greater_than(self):
     bin_code = expand("F600BC2D8F")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 0)
示例#15
0
 def test_sample_two(self):
     bin_code = expand("620080001611562C8802118E34")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(check_sum(packets[0]), 12)
示例#16
0
 def test_maximum(self):
     bin_code = expand("CE00C43D881120")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 9)
示例#17
0
 def test_minimum(self):
     bin_code = expand("880086C3E88112")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 7)
示例#18
0
 def test_product(self):
     bin_code = expand("04005AC33890")
     packets = read_packets(bin_code)
     self.assertEqual(len(packets), 1)
     self.assertEqual(get_value(packets[0]), 54)