Skip to content

Alternate solution for Task 1.2 does not pass tests #11

@tnwei

Description

@tnwei

For Task 1.2, I believe the intended code for scalar.Scalar.__sub__is return Add.apply(self, -b), which passes the tests. Interestingly, if return Add.apply(self, Neg.apply(b)) is used, the tests that involve subtracting constants fail. Excerpt of the failed test cases below:

===============================short test summary info==============================
FAILED tests/test_scalar.py::test_one_args[fn4] - AssertionError: Expected return typ <class 'float'> got <class 'int'>: -200
FAILED tests/test_scalar.py::test_one_args[fn5] - AssertionError: Expected return typ <class 'float'> got <class 'int'>: -200
FAILED tests/test_scalar.py::test_one_args[fn13] - AssertionError: Expected return typ <class 'float'> got <class 'int'>: -5     

I've slightly modified the error message in autodiff.FunctionBase to print the offending value in question, and they are all ints. The root cause is due to scalar.ScalarFunction.data_type being hard-coded as float. I assume data_type is fixed for a reason, and there probably isn't an easy fix to allow the alternate solution to pass the tests. Just thought y'all should know.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions