from entity.BilibiliVideo import BilibiliVideo
from tool import tttt


class TestExcel:
    def test_Excel(self):
        import openpyxl

        def write_to_excel(videos, filename):
            # 创建一个新的Excel工作簿
            wb = openpyxl.Workbook()
            ws = wb.active
            ws.title = "Bilibili Videos"

            # 写入表头
            headers = ["bvId", "title", "url", "uploadTime", "uploadTimeText", "topNo",
                       "viewCount", "likeCount", "coinCount", "favoriteCount",
                       "commentCount", "bulletCount", "creatorId", "creatorName", "creatorFanCount"]
            for col_num, header in enumerate(headers, 1):
                ws.cell(row=1, column=col_num, value=header)

            # 写入视频数据
            for row_num, video in enumerate(videos, 2):
                ws.cell(row=row_num, column=1, value=video.bvId)
                ws.cell(row=row_num, column=2, value=video.title)
                ws.cell(row=row_num, column=3, value=video.url)
                ws.cell(row=row_num, column=4, value=video.uploadTime)
                ws.cell(row=row_num, column=5, value=video.uploadTimeText)
                ws.cell(row=row_num, column=6, value=video.topNo)
                ws.cell(row=row_num, column=7, value=video.viewCount)
                ws.cell(row=row_num, column=8, value=video.likeCount)
                ws.cell(row=row_num, column=9, value=video.coinCount)
                ws.cell(row=row_num, column=10, value=video.favoriteCount)
                ws.cell(row=row_num, column=11, value=video.commentCount)
                ws.cell(row=row_num, column=12, value=video.bulletCount)
                ws.cell(row=row_num, column=13, value=video.creatorId)
                ws.cell(row=row_num, column=14, value=video.creatorName)
                ws.cell(row=row_num, column=15, value=video.creatorFanCount)

            # 保存Excel文件
            wb.save(filename)

        # 示例用法
        video1 = BilibiliVideo("bv123456", "视频标题1", "http://video1.com", 1620000000, 1, 1000, 500, 200, 50, 100,
                               300, "creator123", "up主1", 10000)
        video2 = BilibiliVideo("bv789012", "视频标题2", "http://video2.com", 1621000000, 2, 2000, 1000, 400, 60, 200,
                               400, "creator456", "up主2", 20000)

        videos = [video1, video2]
        write_to_excel(videos, "bilibili_videos.xlsx")

        pass
    def test_WTExcel(self):
        # 测试数据
        test_cases = [
            BilibiliVideo("BV1a4411C7i2", "视频标题1", "https://www.bilibili.com/video/BV1a4411C7i2", 1648927200, 1,
                          100000, 5000, 2000, 3000, 1000, 500, "up123456", "UP主A", 1000000),
            BilibiliVideo("BV1F5411S8h3", "视频标题2", "https://www.bilibili.com/video/BV1F5411S8h3", 1648830800, 2,
                          80000, 4000, 1500, 2000, 800, 400, "up234567", "UP主B", 800000),
            BilibiliVideo("BV1bW411d9c4", "视频标题3", "https://www.bilibili.com/video/BV1bW411d9c4", 1648734400, 3,
                          60000, 3000, 1000, 1500, 600, 300, "up345678", "UP主C", 600000),
            BilibiliVideo("BV1qy411z5k5", "视频标题4", "https://www.bilibili.com/video/BV1qy411z5k5", 1648638000, 4,
                          40000, 2000, 800, 1000, 400, 200, "up456789", "UP主D", 400000),
            BilibiliVideo("BV1R4411J0a6", "视频标题5", "https://www.bilibili.com/video/BV1R4411J0a6", 1648541600, 5,
                          20000, 1000, 500, 700, 200, 100, "up567890", "UP主E", 200000),
            BilibiliVideo("BV1gW411H8d7", "视频标题6", "https://www.bilibili.com/video/BV1gW411H8d7", 1648445200, 6,
                          10000, 500, 300, 400, 100, 50, "up678901", "UP主F", 100000),
            BilibiliVideo("BV1py411t6v8", "视频标题7", "https://www.bilibili.com/video/BV1py411t6v8", 1648348800, 7,
                          5000, 300, 200, 300, 50, 30, "up789012", "UP主G", 50000),
            BilibiliVideo("BV1Qy411S3x9", "视频标题8", "https://www.bilibili.com/video/BV1Qy411S3x9", 1648252400, 8,
                          2000, 100, 100, 200, 20, 10, "up890123", "UP主H", 20000),
            BilibiliVideo("BV1a4411C4y0", "视频标题9", "https://www.bilibili.com/video/BV1a4411C4y0", 1648156000, 9,
                          1000, 50, 50, 100, 10, 5, "up901234", "UP主I", 10000),
            BilibiliVideo("BV1F5411C2r1", "视频标题10", "https://www.bilibili.com/video/BV1F5411C2r1", 1648059600,
                          10, 500, 30, 20, 50, 5, 3, "up012345", "UP主J", 5000)
        ]

        # 将测试数据写入 Excel 文件
        tttt.write_to_excel(test_cases, 'bilibili_videos.xlsx')
    def test_c_r_a_update(self):

        # 示例用法
        file_path = 'bilibili_videos.xlsx'  # Excel 文件路径
        sheet_name = 'Sheet'  # 工作表名称

        tttt.calculate_ratio_and_update(file_path, sheet_name)
        print("Data analysis written to the Excel file.")