From dad8845e07089836869145d26d3b24a9b7de5b48 Mon Sep 17 00:00:00 2001 From: Anton Akhmerov <anton.akhmerov@gmail.com> Date: Sun, 26 Jul 2015 20:31:33 +0200 Subject: [PATCH] fix a broken case in gaussian --- kwant/rmt.py | 14 ++++++++------ kwant/tests/test_rmt.py | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/kwant/rmt.py b/kwant/rmt.py index 1d3fbb72..0f66dd62 100644 --- a/kwant/rmt.py +++ b/kwant/rmt.py @@ -106,12 +106,14 @@ def gaussian(n, sym='A', v=1.): """ if sym not in sym_list: raise ValueError('Unknown symmetry type.') - if (c(sym) or t(sym) == -1 or p(sym) == -1) and n % 2: - raise ValueError('Matrix dimension should be even in chosen symmetry' - 'class.') - else: - tau_z = np.array((n // 2) * [1, -1]) - idx_x = np.arange(n) + tau_z + if (c(sym) or t(sym) == -1 or p(sym) == -1): + if n % 2: + raise ValueError('Matrix dimension should be even in' + ' chosen symmetry class.') + else: + tau_z = np.array((n // 2) * [1, -1]) + idx_x = np.arange(n) + tau_z + if sym == 'CII' and n % 4: raise ValueError('Matrix dimension should be a multiple of 4 in' 'symmetry class CII.') diff --git a/kwant/tests/test_rmt.py b/kwant/tests/test_rmt.py index 87ef04fb..c8869e48 100644 --- a/kwant/tests/test_rmt.py +++ b/kwant/tests/test_rmt.py @@ -19,6 +19,8 @@ def test_gaussian(): for sym in rmt.sym_list: if sym not in ('A', 'D', 'AI'): assert_raises(ValueError, rmt.gaussian, 5, sym) + else: + rmt.gaussian(5, sym) # Check it is allowed. h = rmt.gaussian(n, sym) if rmt.t(sym): t_mat = np.array(rmt.h_t_matrix[sym]) -- GitLab