void () { runPythonTest(new PySmartStepIntoDebuggerTask("test_smart_step_into_unary_operator.py") { @Override public void before() { toggleBreakpoint(22); } @Override public void testing() throws Exception { waitForPause(); assertSmartStepIntoVariants( "__add__", "__neg__", "__add__", "A", "__pos__", "__add__", "__invert__", "__add__"); smartStepInto("__neg__", 0); waitForPause(); eval("self.x").hasValue("3"); stepInto(); waitForPause(); stepInto(); waitForPause(); stepInto(); waitForPause(); smartStepInto("A", 0); waitForPause(); eval("x").hasValue("-4"); stepOver(); waitForPause(); assertSmartStepIntoVariants("__pos__", "__add__", "__invert__", "__add__"); smartStepInto("__pos__", 0); waitForPause(); eval("self.x").hasValue("-4"); stepOver(); waitForPause(); assertSmartStepIntoVariants("__add__", "__invert__", "__add__"); smartStepInto("__invert__", 0); waitForPause(); eval("self.x").hasValue("1"); resume(); waitForTerminate(); } }); }