Esempio n. 1
0
def test_BaseCharge_unique():
    D = 3000
    B = 5
    np.random.seed(10)
    q = np.random.randint(-B // 2, B // 2 + 1, (D, 2)).astype(np.int16)
    Q = BaseCharge(charges=q, charge_types=[U1Charge, U1Charge])
    #this call has to be to custom unique to ensure correct ordering
    expected = unique(q,
                      return_index=True,
                      return_inverse=True,
                      return_counts=True)
    actual = Q.unique(return_index=True,
                      return_inverse=True,
                      return_counts=True)
    assert np.all(actual[0].charges == expected[0])
    assert np.all(actual[1] == expected[1])
    assert np.all(actual[2] == expected[2])
    assert np.all(actual[3] == expected[3])

    _ = Q.unique_charges  # switch internally to unique-labels representation
    actual = Q.unique(return_index=True,
                      return_inverse=True,
                      return_counts=True)
    assert np.all(actual[0].charges == expected[0])
    assert np.all(actual[1] == expected[1])
    assert np.all(actual[2] == expected[2])
    assert np.all(actual[3] == expected[3])
Esempio n. 2
0
def test_BaseCharge_single_unique():
    D = 30
    np.random.seed(10)
    q = np.ones((D, 2), dtype=np.int16)
    Q = BaseCharge(charges=q, charge_types=[U1Charge, U1Charge])
    expected = np.unique(q,
                         return_index=True,
                         return_inverse=True,
                         return_counts=True,
                         axis=0)
    actual = Q.unique(return_index=True,
                      return_inverse=True,
                      return_counts=True)
    assert np.all(actual[0].charges == expected[0])
    assert np.all(actual[1] == expected[1])
    assert np.all(actual[2] == expected[2])
    assert np.all(actual[3] == expected[3])

    expected = np.unique(q, axis=0)
    actual = Q.unique()
    assert np.all(actual.charges == expected)
Esempio n. 3
0
def test_BaseCharge_unique():
    D = 3000
    B = 5
    np.random.seed(10)
    q = np.random.randint(-B // 2, B // 2 + 1, (2, D)).astype(np.int16)
    Q = BaseCharge(charges=q, charge_types=[U1Charge, U1Charge])
    expected = np.unique(q,
                         return_index=True,
                         return_inverse=True,
                         return_counts=True,
                         axis=1)
    actual = Q.unique(return_index=True,
                      return_inverse=True,
                      return_counts=True)
    assert np.all(actual[0].charges == expected[0])
    assert np.all(actual[1] == expected[1])
    assert np.all(actual[2] == expected[2])
    assert np.all(actual[3] == expected[3])