Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

import numpy as np 

from chemreac.util.grid import ( 

    stencil_pxci_lbounds, padded_centers, pxci_to_bi, generate_grid 

) 

 

 

def test_stencil_pxci_lbounds(): 

    b = stencil_pxci_lbounds(5, 7) 

    assert b == [2, 2, 2, 3, 4, 4, 4] 

 

    b = stencil_pxci_lbounds(3, 5, lrefl=True) 

    assert b == [0, 1, 2, 3, 3] 

 

    b = stencil_pxci_lbounds(3, 5, rrefl=True) 

    assert b == [1, 1, 2, 3, 4] 

 

    b = stencil_pxci_lbounds(5, 7, lrefl=True, rrefl=True) 

    assert b == [0, 1, 2, 3, 4, 5, 6] 

 

    b = stencil_pxci_lbounds(3, 4, rrefl=True) 

    # [y0, y0, y1, y2, y3, y3] 

    assert b == [1, 1, 2, 3] 

 

 

def test_pxci_to_bi(): 

    yi = pxci_to_bi(5, 7) 

    assert yi == [1, 0, 0, 1, 2, 3, 4, 5, 6, 6, 5] 

 

    yi = pxci_to_bi(3, 4) 

    assert yi == [0, 0, 1, 2, 3, 3] 

 

 

def test_padded_centers(): 

    b = [0, 2, 6] 

    xc_ = padded_centers(b, 1) 

    assert np.allclose(xc_, [-1, 1, 4, 8]) 

 

    b = np.arange(10, 21) 

    xc_ = padded_centers(b, 2) 

    print(xc_) 

    assert np.allclose(xc_, np.linspace(8.5, 21.5, 14)) 

 

 

def test_generate_grid(): 

    g1 = generate_grid(0, 1, 2) 

    assert np.allclose(g1, [0, 0.5, 1]) 

 

    g2 = generate_grid(0, 1, 2, random=True) 

    assert g2[0] == 0 

    assert g2[1] > 0 and g2[1] < 1 

    assert g2[2] == 1