# -*- coding: utf-8 -*-
"""
Copyright (C) 2020-2024 LiteyukiStudio. All Rights Reserved 

@Time    : 2024/8/26 上午6:58
@Author  : snowykami
@Email   : snowykami@outlook.com
@File    : test_question_1.py
@Software: PyCharm
"""
import logging

from mbcp.mp_math.angle import AnyAngle
from mbcp.mp_math.const import PI
from mbcp.mp_math.vector import Vector3

from tests.answer import output_ans


class TestVector3:

    """测试问题集"""
    def test_cal_angle(self):
        """
        测试计算两个向量的夹角
        Returns:
        """
        """小题1"""
        v1 = Vector3(0 ,1, 0)
        v2 = Vector3(0, 0, 1)
        correct_ans = AnyAngle(90)
        actual_ans = v1.cal_angle(v2)
        output_ans(correct_ans, actual_ans)

        """小题2"""
        v1 = Vector3(0, 1, 0)
        v2 = Vector3(1, 1, 0)
        correct_ans = AnyAngle(45)
        actual_ans = v1.cal_angle(v2)
        output_ans(correct_ans, actual_ans)


    def test_vector_cross_product(self):
        """
        测试向量叉乘
        Returns:
        """
        v1 = Vector3(1, 2, 3)
        v2 = Vector3(3, 4, 5)
        actual_ans = v1.cross(v2)
        correct_ans = Vector3(-2, 4, -2)
        logging.info(f"正确答案{correct_ans}    实际答案{v1 @ v2}")

        assert correct_ans == actual_ans

    def test_determine_vector_parallel(self):
        """
        测试判断向量是否平行
        Returns:
        """
        """小题1"""
        correct_ans = True
        v1 = Vector3(1, 2, 3)
        v2 = Vector3(3, 6, 9)
        actual_ans = v1.is_parallel(v2)
        output_ans(correct_ans, actual_ans)
        assert correct_ans == actual_ans

        """小题2"""
        correct_ans = False
        v1 = Vector3(1, 2, 3)
        v2 = Vector3(3, 6, 8)
        actual_ans = v1.is_parallel(v2)
        output_ans(correct_ans, actual_ans)
        assert correct_ans == actual_ans