MCPcopy Index your code
hub / github.com/python/cpython / test_if_else_expr

Method test_if_else_expr

Lib/test/test_grammar.py:1932–1957  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1930 pass
1931
1932 def test_if_else_expr(self):
1933 # Test ifelse expressions in various cases
1934 def _checkeval(msg, ret):
1935 "helper to check that evaluation of expressions is done correctly"
1936 print(msg)
1937 return ret
1938
1939 # the next line is not allowed anymore
1940 #self.assertEqual([ x() for x in lambda: True, lambda: False if x() ], [True])
1941 self.assertEqual([ x() for x in (lambda: True, lambda: False) if x() ], [True])
1942 self.assertEqual([ x(False) for x in (lambda x: False if x else True, lambda x: True if x else False) if x(False) ], [True])
1943 self.assertEqual((5 if 1 else _checkeval("check 1", 0)), 5)
1944 self.assertEqual((_checkeval("check 2", 0) if 0 else 5), 5)
1945 self.assertEqual((5 and 6 if 0 else 1), 1)
1946 self.assertEqual(((5 and 6) if 0 else 1), 1)
1947 self.assertEqual((5 and (6 if 1 else 1)), 6)
1948 self.assertEqual((0 or _checkeval("check 3", 2) if 0 else 3), 3)
1949 self.assertEqual((1 or _checkeval("check 4", 2) if 1 else _checkeval("check 5", 3)), 1)
1950 self.assertEqual((0 or 5 if 1 else _checkeval("check 6", 3)), 5)
1951 self.assertEqual((not 5 if 1 else 1), False)
1952 self.assertEqual((not 5 if 0 else 1), 1)
1953 self.assertEqual((6 + 1 if 1 else 2), 7)
1954 self.assertEqual((6 - 1 if 1 else 2), 5)
1955 self.assertEqual((6 * 2 if 1 else 4), 12)
1956 self.assertEqual((6 / 2 if 1 else 3), 3)
1957 self.assertEqual((6 < 4 if 0 else 2), 2)
1958
1959 def test_paren_evaluation(self):
1960 self.assertEqual(16 // (4 // 2), 8)

Callers

nothing calls this directly

Calls 2

xFunction · 0.50
assertEqualMethod · 0.45

Tested by

no test coverage detected