diff --git a/opt_einsum/__init__.py b/opt_einsum/__init__.py
index 3d8b47b..0ec9eb6 100644
--- a/opt_einsum/__init__.py
+++ b/opt_einsum/__init__.py
@@ -6,15 +6,18 @@ from . import blas
 from . import helpers
 from . import paths
 from . import path_random
-# Handle versioneer
-from ._version import get_versions
 from .contract import contract, contract_path, contract_expression
 from .parser import get_symbol
 from .sharing import shared_intermediates
 from .paths import BranchBound
 from .path_random import RandomGreedy
 
+# Handle versioneer
+from ._version import get_versions
 versions = get_versions()
 __version__ = versions['version']
 __git_revision__ = versions['full-revisionid']
 del get_versions, versions
+
+
+paths.register_path_fn('random-greedy', path_random.random_greedy)
diff --git a/opt_einsum/contract.py b/opt_einsum/contract.py
index 2f2d262..f7d2d91 100644
--- a/opt_einsum/contract.py
+++ b/opt_einsum/contract.py
@@ -13,10 +13,9 @@ from . import compat
 from . import helpers
 from . import parser
 from . import paths
-from . import path_random
 from . import sharing
 
-__all__ = ["contract_path", "contract", "format_const_einsum_str", "ContractExpression", "shape_only", "shape_only"]
+__all__ = ["contract_path", "contract", "format_const_einsum_str", "ContractExpression", "shape_only"]
 
 
 class PathInfo(object):
@@ -93,6 +92,9 @@ def _choose_memory_arg(memory_limit, size_list):
     return int(memory_limit)
 
 
+_VALID_CONTRACT_KWARGS = {'optimize', 'path', 'memory_limit', 'einsum_call', 'use_blas', 'shapes'}
+
+
 def contract_path(*operands, **kwargs):
     """
     Find a contraction order 'path', without performing the contraction.
@@ -124,6 +126,9 @@ def contract_path(*operands, **kwargs):
         Use BLAS functions or not
     memory_limit : int, optional (default: None)
         Maximum number of elements allowed in intermediate arrays.
+    shapes : bool, optional
+        Whether ``contract_path`` should assume arrays (the default) or array
+        shapes have been supplied.
 
     Returns
     -------
@@ -193,8 +198,7 @@ def contract_path(*operands, **kwargs):
     """
 
     # Make sure all keywords are valid
-    valid_contract_kwargs = ['optimize', 'path', 'memory_limit', 'einsum_call', 'use_blas']
-    unknown_kwargs = [k for (k, v) in kwargs.items() if k not in valid_contract_kwargs]
+    unknown_kwargs = set(kwargs) - _VALID_CONTRACT_KWARGS
     if len(unknown_kwargs):
         raise TypeError("einsum_path: Did not understand the following kwargs: {}".format(unknown_kwargs))
 
@@ -206,6 +210,7 @@ def contract_path(*operands, **kwargs):
         path_type = kwargs.pop('optimize', 'auto')
 
     memory_limit = kwargs.pop('memory_limit', None)
+    shapes = kwargs.pop('shapes', False)
 
     # Hidden option, only einsum should call this
     einsum_call_arg = kwargs.pop("einsum_call", False)
@@ -217,7 +222,10 @@ def contract_path(*operands, **kwargs):
     # Build a few useful list and sets
     input_list = input_subscripts.split(',')
     input_sets = [set(x) for x in input_list]
-    input_shps = [x.shape for x in operands]
+    if shapes:
+        input_shps = operands
+    else:
+        input_shps = [x.shape for x in operands]
     output_set = set(output_subscript)
     indices = set(input_subscripts.replace(',', ''))
 
@@ -257,29 +265,17 @@ def contract_path(*operands, **kwargs):
 
     # Compute the path
     if not isinstance(path_type, (compat.strings, paths.PathOptimizer)):
+        # Custom path supplied
         path = path_type
-    elif num_ops == 1:
-        # Nothing to be optimized
-        path = [(0, )]
-    elif num_ops == 2:
+    elif num_ops <= 2:
         # Nothing to be optimized
-        path = [(0, 1)]
+        path = [tuple(range(num_ops))]
     elif isinstance(path_type, paths.PathOptimizer):
+        # Custom path optimizer supplied
         path = path_type(input_sets, output_set, dimension_dict, memory_arg)
-    elif path_type == "optimal" or (path_type == "auto" and num_ops <= 4):
-        path = paths.optimal(input_sets, output_set, dimension_dict, memory_arg)
-    elif path_type == 'branch-all' or (path_type == "auto" and num_ops <= 6):
-        path = paths.branch(input_sets, output_set, dimension_dict, memory_arg, nbranch=None)
-    elif path_type == 'branch-2' or (path_type == "auto" and num_ops <= 8):
-        path = paths.branch(input_sets, output_set, dimension_dict, memory_arg, nbranch=2)
-    elif path_type == 'branch-1' or (path_type == "auto" and num_ops <= 14):
-        path = paths.branch(input_sets, output_set, dimension_dict, memory_arg, nbranch=1)
-    elif path_type == 'random-greedy':
-        path = path_random.random_greedy(input_sets, output_set, dimension_dict, memory_arg)
-    elif path_type in ("auto", "greedy", "eager", "opportunistic"):
-        path = paths.greedy(input_sets, output_set, dimension_dict, memory_arg)
     else:
-        raise KeyError("Path name '{}' not found".format(path_type))
+        path_optimizer = paths.get_path_fn(path_type)
+        path = path_optimizer(input_sets, output_set, dimension_dict, memory_arg)
 
     cost_list = []
     scale_list = []
diff --git a/opt_einsum/path_random.py b/opt_einsum/path_random.py
index 5f40cc8..49bf95e 100644
--- a/opt_einsum/path_random.py
+++ b/opt_einsum/path_random.py
@@ -11,13 +11,13 @@ import functools
 from collections import deque
 
 from . import helpers
-from .paths import PathOptimizer, ssa_greedy_optimize, get_better_fn, ssa_to_linear, calc_k12_flops
+from . import paths
 
 
 __all__ = ["RandomGreedy", "random_greedy"]
 
 
-class RandomOptimizer(PathOptimizer):
+class RandomOptimizer(paths.PathOptimizer):
     """Base class for running any random path finder that benefits
     from repeated calling, possibly in a parallel fashion. Custom random
     optimizers should subclass this, and the ``setup`` method should be
@@ -81,7 +81,7 @@ class RandomOptimizer(PathOptimizer):
         self.max_repeats = max_repeats
         self.max_time = max_time
         self.minimize = minimize
-        self.better = get_better_fn(minimize)
+        self.better = paths.get_better_fn(minimize)
         self.parallel = parallel
         self.pre_dispatch = pre_dispatch
 
@@ -95,7 +95,7 @@ class RandomOptimizer(PathOptimizer):
     def path(self):
         """The best path found so far.
         """
-        return ssa_to_linear(self.best['ssa_path'])
+        return paths.ssa_to_linear(self.best['ssa_path'])
 
     @property
     def parallel(self):
@@ -256,7 +256,7 @@ def thermal_chooser(queue, remaining, nbranch=8, temperature=1, rel_temperature=
 
     # compute relative probability for each potential contraction
     if temperature == 0.0:
-        energies = [1 if cost == cmin else 0 for cost in costs]
+        energies = [1 if c == cmin else 0 for c in costs]
     else:
         # shift by cmin for numerical reasons
         energies = [math.exp(-(c - cmin) / temperature) for c in costs]
@@ -282,7 +282,7 @@ def ssa_path_compute_cost(ssa_path, inputs, output, size_dict):
     max_size = 0
 
     for i, j in ssa_path:
-        k12, flops12 = calc_k12_flops(inputs, output, remaining, i, j, size_dict)
+        k12, flops12 = paths.calc_k12_flops(inputs, output, remaining, i, j, size_dict)
         remaining.discard(i)
         remaining.discard(j)
         remaining.add(len(inputs))
@@ -302,7 +302,7 @@ def _trial_greedy_ssa_path_and_cost(r, inputs, output, size_dict, choose_fn, cos
     else:
         random.seed(r)
 
-    ssa_path = ssa_greedy_optimize(inputs, output, size_dict, choose_fn, cost_fn)
+    ssa_path = paths.ssa_greedy_optimize(inputs, output, size_dict, choose_fn, cost_fn)
     cost, size = ssa_path_compute_cost(ssa_path, inputs, output, size_dict)
 
     return ssa_path, cost, size
diff --git a/opt_einsum/paths.py b/opt_einsum/paths.py
index df800bf..8ce6a67 100644
--- a/opt_einsum/paths.py
+++ b/opt_einsum/paths.py
@@ -5,6 +5,7 @@ from __future__ import absolute_import, division, print_function
 
 import heapq
 import random
+import functools
 import itertools
 from collections import defaultdict
 
@@ -12,7 +13,8 @@ import numpy as np
 
 from . import helpers
 
-__all__ = ["optimal", "BranchBound", "branch", "greedy"]
+
+__all__ = ["optimal", "BranchBound", "branch", "greedy", "auto", "get_path_fn"]
 
 
 _UNLIMITED_MEM = {-1, None, float('inf')}
@@ -444,6 +446,11 @@ def branch(inputs, output, size_dict, memory_limit=None, **optimizer_kwargs):
     return optimizer(inputs, output, size_dict, memory_limit)
 
 
+branch_all = functools.partial(branch, nbranch=None)
+branch_2 = functools.partial(branch, nbranch=2)
+branch_1 = functools.partial(branch, nbranch=1)
+
+
 def _get_candidate(output, sizes, remaining, footprints, dim_ref_counts, k1, k2, cost_fn):
     either = k1 | k2
     two = k1 & k2
@@ -645,3 +652,53 @@ def greedy(inputs, output, size_dict, memory_limit=None, choose_fn=None, cost_fn
 
     ssa_path = ssa_greedy_optimize(inputs, output, size_dict, cost_fn=cost_fn, choose_fn=choose_fn)
     return ssa_to_linear(ssa_path)
+
+
+_AUTO_CHOICES = {}
+for i in range(1, 5):
+    _AUTO_CHOICES[i] = optimal
+for i in range(5, 7):
+    _AUTO_CHOICES[i] = branch_all
+for i in range(7, 9):
+    _AUTO_CHOICES[i] = branch_2
+for i in range(9, 15):
+    _AUTO_CHOICES[i] = branch_1
+
+
+def auto(inputs, output, size_dict, memory_limit=None):
+    """Finds the contraction path by automatically choosing the method based on
+    how many input arguments there are.
+    """
+    N = len(inputs)
+    return _AUTO_CHOICES.get(N, greedy)(inputs, output, size_dict, memory_limit)
+
+
+_PATH_OPTIONS = {
+    'auto': auto,
+    'optimal': optimal,
+    'branch-all': branch_all,
+    'branch-2': branch_2,
+    'branch-1': branch_1,
+    'greedy': greedy,
+    'eager': greedy,
+    'opportunistic': greedy,
+}
+
+
+def register_path_fn(name, fn):
+    """Add path finding function ``fn`` as an option with ``name``.
+    """
+    if name in _PATH_OPTIONS:
+        raise KeyError("Path optimizer '{}' already exists.".format(name))
+
+    _PATH_OPTIONS[name.lower()] = fn
+
+
+def get_path_fn(path_type):
+    """Get the correct path finding function from str ``path_type``.
+    """
+    if path_type not in _PATH_OPTIONS:
+        raise KeyError("Path optimizer '{}' not found, valid options are {}."
+                       .format(path_type, set(_PATH_OPTIONS.keys())))
+
+    return _PATH_OPTIONS[path_type]

diff --git a/opt_einsum/tests/test_backends.py b/opt_einsum/tests/test_backends.py
index ca046e4..b596cf1 100644
--- a/opt_einsum/tests/test_backends.py
+++ b/opt_einsum/tests/test_backends.py
@@ -2,6 +2,7 @@ import numpy as np
 import pytest
 
 from opt_einsum import contract, helpers, contract_expression, backends, sharing
+from opt_einsum.contract import infer_backend, parse_backend, Shaped
 
 try:
     import cupy
@@ -337,3 +338,10 @@ def test_torch_with_constants():
     assert isinstance(res_got3, torch.Tensor)
     res_got3 = res_got3.numpy() if res_got3.device.type == 'cpu' else res_got3.cpu().numpy()
     assert np.allclose(res_exp, res_got3)
+
+
+def test_auto_backend_custom_array_no_tensordot():
+    x = Shaped((1, 2, 3))
+    # Shaped is an array-like object defined by opt_einsum - which has no TDOT
+    assert infer_backend(x) == 'opt_einsum'
+    assert parse_backend([x], 'auto') == 'numpy'
diff --git a/opt_einsum/tests/test_contract.py b/opt_einsum/tests/test_contract.py
index 7227e2d..775aac0 100644
--- a/opt_einsum/tests/test_contract.py
+++ b/opt_einsum/tests/test_contract.py
@@ -257,3 +257,9 @@ def test_linear_vs_ssa(equation):
     ssa_path = linear_to_ssa(linear_path)
     linear_path2 = ssa_to_linear(ssa_path)
     assert linear_path2 == linear_path
+
+
+def test_contract_path_supply_shapes():
+    eq = 'ab,bc,cd'
+    shps = [(2, 3), (3, 4), (4, 5)]
+    contract_path(eq, *shps, shapes=True)
diff --git a/opt_einsum/tests/test_paths.py b/opt_einsum/tests/test_paths.py
index a860ee7..33b876b 100644
--- a/opt_einsum/tests/test_paths.py
+++ b/opt_einsum/tests/test_paths.py
@@ -108,6 +108,16 @@ def test_flop_cost():
     assert 2000 == oe.helpers.flop_count("abc", True, 2, size_dict)
 
 
+def test_bad_path_option():
+    with pytest.raises(KeyError):
+        oe.contract("a,b,c", [1], [2], [3], optimize='optimall')
+
+
+def test_explicit_path():
+    x = oe.contract("a,b,c", [1], [2], [3], optimize=[(1, 2), (0, 1)])
+    assert x.item() == 6
+
+
 def test_path_optimal():
 
     test_func = oe.paths.optimal
@@ -353,3 +363,22 @@ def test_custom_random_optimizer():
     assert optimizer.was_used
 
     assert len(optimizer.costs) == 16
+
+
+def test_optimizer_registration():
+
+    def custom_optimizer(inputs, output, size_dict, memory_limit):
+        return [(0, 1)] * (len(inputs) - 1)
+
+    with pytest.raises(KeyError):
+        oe.paths.register_path_fn('optimal', custom_optimizer)
+
+    oe.paths.register_path_fn('custom', custom_optimizer)
+    assert 'custom' in oe.paths._PATH_OPTIONS
+
+    eq = 'ab,bc,cd'
+    shapes = [(2, 3), (3, 4), (4, 5)]
+    path, path_info = oe.contract_path(eq, *shapes, shapes=True,
+                                       optimize='custom')
+    assert path == [(0, 1), (0, 1)]
+    del oe.paths._PATH_OPTIONS['custom']

FR: separate 'auto' strategy out of contract_path
The 'auto' strategy is really nice, but it requires actual arrays because it is based into `contract_path`. Sometimes I want to get a path based merely on shapes. It should be easy to factor out the logic from `contract_path` to a new `paths.auto` that conforms to the standard shape-based path interface.
opt_einsum/tests/test_contract.py::test_contract_path_supply_shapes opt_einsum/tests/test_paths.py::test_optimizer_registration
opt_einsum/tests/test_backends.py::test_auto_backend_custom_array_no_tensordot opt_einsum/tests/test_contract.py::test_compare[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_compare[branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_compare[branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_compare[branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_compare[branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_compare[branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_compare[branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_compare[branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_compare[branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_compare[branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_compare[branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_compare[branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_compare[branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_compare[branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_compare[branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_compare[branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare[random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare[random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare[random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare[random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare[random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare[random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare[random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare[random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare[random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare[random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare[random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare[random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare[random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare[random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare[random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare[random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare[random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare[random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_drop_in_replacement[a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[a,b,ab->ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_drop_in_replacement[acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_drop_in_replacement[acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_drop_in_replacement[cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_drop_in_replacement[chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,c->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,c->c] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cd,de->be] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,ad] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_drop_in_replacement[baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_drop_in_replacement[fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,ba] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abc,abc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abc,bac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abc,cba] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,cb] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ba,bc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ba,cb] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,cd] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,ab] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,cdef] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_drop_in_replacement[abcd,efdc] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,bc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ab,bcc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,bcc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[baa,bcc->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,ccb->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_drop_in_replacement[ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bb,ff,be->e] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_drop_in_replacement[afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_drop_in_replacement[adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_drop_in_replacement[bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_drop_in_replacement[dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_drop_in_replacement[aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_greek[random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas[random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_compare_blas_greek[random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_some_non_alphabet_maintains_order opt_einsum/tests/test_contract.py::test_printing opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-False-random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[False-True-random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-False-random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-optimal-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-all-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-2-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-branch-1-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-a,b,ab->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab,c->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab,c->c] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,cd,de->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,ad] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,ba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abc,abc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abc,bac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abc,cba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ba,bc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ba,cb] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,cd] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,ab] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,cdef] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-abcd,efdc] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-aab,bc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-aab,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-baa,bcc->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-aab,ccb->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bb,ff,be->e] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_contract_expressions[True-True-random-greedy-aef,fbc,dca->bde] opt_einsum/tests/test_contract.py::test_contract_expression_interleaved_input opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[hbc,bdef,cdkj,ji,ikeh,lfo-constants0] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[bdef,cdkj,ji,ikeh,hbc,lfo-constants1] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[hbc,bdef,cdkj,ji,ikeh,lfo-constants2] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[hbc,bdef,cdkj,ji,ikeh,lfo-constants3] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[ijab,acd,bce,df,ef->ji-constants4] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[ab,cd,ad,cb-constants5] opt_einsum/tests/test_contract.py::test_contract_expression_with_constants[ab,bc,cd-constants6] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-2-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-2-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-2-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-2-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-3-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-3-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-0-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-2-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-2-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-2-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-2-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-3-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-3-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-2-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-2-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-2-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-2-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-2-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-3-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-3-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[False-4-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-2-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-2-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-2-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-2-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-3-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-3-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-0-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-2-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-2-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-2-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-2-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-3-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-3-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-2-3-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-2-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-2-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-2-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-2-5-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-3-4-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-3-4-optimal] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-3-5-greedy] opt_einsum/tests/test_contract.py::test_rand_equation[True-4-3-5-optimal] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[a,ab,abc->abc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[a,b,ab->ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ea,fb,gc,hd,abcd->efgh] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ea,fb,abcd,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,ea,fb,gc,hd->efgh] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[acdf,jbje,gihb,hfac,gfac,gifabc,hfac0] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[acdf,jbje,gihb,hfac,gfac,gifabc,hfac1] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[cd,bdhe,aidb,hgca,gc,hgibcd,hgac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abhe,hidj,jgba,hiab,gab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bde,cdh,agdb,hica,ibd,hgicd,hiac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[chd,bde,agbc,hiad,hgc,hgi,hiad] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[chd,bde,agbc,hiad,bdi,cgh,agdb] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bdhe,acad,hiab,agac,hibd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,c->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,c->c] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd->cd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab,cd,cd,ef,ef->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,ef->abcdef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,ef->acdf] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,de->abcde] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cd,de->be] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bcd,cd->abcd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bcd,cd->abd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[eb,cb,fb->cef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[dd,fb,be,cdb->cef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bca,cdb,dbf,afc->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[dcc,fce,ea,dbf->ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[fdf,cdd,ccd,afe->ae] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,ad] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ed,fcd,ff,bcf->be] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[baa,dcf,af,cde->be] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bd,db,eac->ace] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[fff,fae,bef,def->abd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[efc,dbc,acf,fd->abe] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,ba] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abc,abc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abc,bac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abc,cba] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,cb] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ba,bc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ba,cb] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,cd] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,ab] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,cdef] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,cdef->feba] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[abcd,efdc] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,bc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ab,bcc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,bcc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[baa,bcc->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,ccb->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aab,fa,df,ecc->bde] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[ecb,fef,bad,ed->ac] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bcf,bbb,fbf,fc->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bb,ff,be->e] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bcb,bb,fc,fff->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[fbb,dfd,fc,fc->] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[afd,ba,cc,dc->bf] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[adb,bc,fa,cfc->d] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[bbd,bda,fc,db->acf] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[dba,ead,cad->bce] opt_einsum/tests/test_contract.py::test_linear_vs_ssa[aef,fbc,dca->bde] opt_einsum/tests/test_paths.py::test_size_by_dict opt_einsum/tests/test_paths.py::test_flop_cost opt_einsum/tests/test_paths.py::test_bad_path_option opt_einsum/tests/test_paths.py::test_explicit_path opt_einsum/tests/test_paths.py::test_path_optimal opt_einsum/tests/test_paths.py::test_path_greedy opt_einsum/tests/test_paths.py::test_memory_paths opt_einsum/tests/test_paths.py::test_path_edge_cases[greedy-eb,cb,fb->cef-order0] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-all-eb,cb,fb->cef-order1] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-2-eb,cb,fb->cef-order2] opt_einsum/tests/test_paths.py::test_path_edge_cases[optimal-eb,cb,fb->cef-order3] opt_einsum/tests/test_paths.py::test_path_edge_cases[greedy-dd,fb,be,cdb->cef-order4] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-all-dd,fb,be,cdb->cef-order5] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-2-dd,fb,be,cdb->cef-order6] opt_einsum/tests/test_paths.py::test_path_edge_cases[optimal-dd,fb,be,cdb->cef-order7] opt_einsum/tests/test_paths.py::test_path_edge_cases[greedy-bca,cdb,dbf,afc->-order8] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-all-bca,cdb,dbf,afc->-order9] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-2-bca,cdb,dbf,afc->-order10] opt_einsum/tests/test_paths.py::test_path_edge_cases[optimal-bca,cdb,dbf,afc->-order11] opt_einsum/tests/test_paths.py::test_path_edge_cases[greedy-dcc,fce,ea,dbf->ab-order12] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-all-dcc,fce,ea,dbf->ab-order13] opt_einsum/tests/test_paths.py::test_path_edge_cases[branch-2-dcc,fce,ea,dbf->ab-order14] opt_einsum/tests/test_paths.py::test_path_edge_cases[optimal-dcc,fce,ea,dbf->ab-order15] opt_einsum/tests/test_paths.py::test_optimal_edge_cases opt_einsum/tests/test_paths.py::test_greedy_edge_cases opt_einsum/tests/test_paths.py::test_can_optimize_outer_products[greedy] opt_einsum/tests/test_paths.py::test_can_optimize_outer_products[branch-2] opt_einsum/tests/test_paths.py::test_can_optimize_outer_products[branch-all] opt_einsum/tests/test_paths.py::test_can_optimize_outer_products[optimal] opt_einsum/tests/test_paths.py::test_large_path[2] opt_einsum/tests/test_paths.py::test_large_path[3] opt_einsum/tests/test_paths.py::test_large_path[26] opt_einsum/tests/test_paths.py::test_large_path[52] opt_einsum/tests/test_paths.py::test_large_path[116] opt_einsum/tests/test_paths.py::test_large_path[300] opt_einsum/tests/test_paths.py::test_custom_random_greedy opt_einsum/tests/test_paths.py::test_custom_branchbound opt_einsum/tests/test_paths.py::test_parallel_random_greedy opt_einsum/tests/test_paths.py::test_custom_path_optimizer opt_einsum/tests/test_paths.py::test_custom_random_optimizer