weight = 3
        width = 5
        depth = 5
        pattern = re.compile("stage(\\d*).(\\d*)")
        with DAG("dag", start_date=DEFAULT_DATE, default_args={"owner": "owner1"}) as dag:
            pipeline = [
                [
                    EmptyOperator(
                        task_id=f"stage{i}.{j}",
                        priority_weight=weight,
                        weight_rule=WeightRule.UPSTREAM,
                    )
                    for j in range(0, width)
                ]
                for i in range(0, depth)
            ]
            for i, stage in enumerate(pipeline):
                if i == 0:
                    continue
                for current_task in stage:
                    for prev_task in pipeline[i - 1]:
                        current_task.set_upstream(prev_task)
            for task in dag.task_dict.values():
                match = pattern.match(task.task_id)
                task_depth = int(match.group(1))
                
                correct_weight = (task_depth * width + 1) * weight
                calculated_weight = task.priority_weight_total