def test_multiframe_file():
    p = XYZParser()
    expected = [{
        'natoms':
        5,
        'comment':
        'i =        1, E =        -8.0633022872',
        'atoms': [('C', (5.0, 5.0, 5.0)),
                  ('H', (5.6401052216, 5.6401052216, 5.6401052216)),
                  ('H', (4.3598947806, 4.3598947806, 5.6401052208)),
                  ('H', (4.3598947806, 5.6401052208, 4.3598947806)),
                  ('H', (5.6401052208, 4.3598947806, 4.3598947806))]
    }, {
        'natoms':
        5,
        'comment':
        'i =        2, E =        -8.0633022874',
        'atoms': [('C', (5.0, 5.0, 5.0)),
                  ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
                  ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
                  ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
                  ('H', (5.6401902063, 4.3598097942, 4.3598097942))]
    }, {
        'natoms':
        5,
        'comment':
        'i =        3, E =        -8.0632890314',
        'atoms': [('C', (5.0, 5.0, 5.0)),
                  ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
                  ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
                  ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
                  ('H', (5.6401902063, 4.3598097942, 4.3598097942))]
    }]
    with open('tests/test_xyz_parser-simple_multiframe_file.xyz', 'r') as f:
        assert expected == p.parse(f)
Example #2
0
def test_multiframe_file():
    p = XYZParser()
    expected = [ { 'natoms': 5,
            'comment': 'i =        1, E =        -8.0633022872',
            'atoms': [
                ('C', (5.0, 5.0, 5.0)),
                ('H', (5.6401052216, 5.6401052216, 5.6401052216)),
                ('H', (4.3598947806, 4.3598947806, 5.6401052208)),
                ('H', (4.3598947806, 5.6401052208, 4.3598947806)),
                ('H', (5.6401052208, 4.3598947806, 4.3598947806)) ] },
            { 'natoms': 5,
            'comment': 'i =        2, E =        -8.0633022874',
            'atoms': [
                ('C', (5.0, 5.0, 5.0)),
                ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
                ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
                ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
                ('H', (5.6401902063, 4.3598097942, 4.3598097942)) ] },
            { 'natoms': 5,
            'comment': 'i =        3, E =        -8.0632890314',
            'atoms': [
                ('C', (5.0, 5.0, 5.0)),
                ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
                ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
                ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
                ('H', (5.6401902063, 4.3598097942, 4.3598097942)) ] } ]
    with open('tests/test_xyz_parser-simple_multiframe_file.xyz', 'r') as f:
        assert expected == p.parse(f)
Example #3
0
def test_singleframe_string():
    p = XYZParser()
    s = '''
5

C 5.0000000000 5.0000000000 5.0000000000
H 5.6401902064 5.6401902064 5.6401902064
H 4.3598097942 4.3598097942 5.6401902063
H 4.3598097942 5.6401902063 4.3598097942
H 5.6401902063 4.3598097942 4.3598097942
'''
    expected = [ { 'natoms': 5, 'comment': '',
            'atoms': [
                ('C', (5.0, 5.0, 5.0)),
                ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
                ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
                ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
                ('H', (5.6401902063, 4.3598097942, 4.3598097942)) ] } ]

    assert expected == p.parse(s)
def test_singleframe_string():
    p = XYZParser()
    s = '''
5

C 5.0000000000 5.0000000000 5.0000000000
H 5.6401902064 5.6401902064 5.6401902064
H 4.3598097942 4.3598097942 5.6401902063
H 4.3598097942 5.6401902063 4.3598097942
H 5.6401902063 4.3598097942 4.3598097942
'''
    expected = [{
        'natoms':
        5,
        'comment':
        '',
        'atoms': [('C', (5.0, 5.0, 5.0)),
                  ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
                  ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
                  ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
                  ('H', (5.6401902063, 4.3598097942, 4.3598097942))]
    }]

    assert expected == p.parse(s)
def test_parse_iterator_last_frame():
    atoms = [('C', (5.0, 5.0, 5.0)),
             ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
             ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
             ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
             ('H', (5.6401902063, 4.3598097942, 4.3598097942))]

    with open('tests/test_xyz_parser-simple_multiframe_file.xyz', 'r') as f:
        s = f.read()

        frame_iterator = XYZParser.parse_iter(s)
        for (natoms, comment, atomiter) in frame_iterator:
            pass

        assert natoms == 5
        assert comment == 'i =        3, E =        -8.0632890314'
        assert list(atomiter) == atoms
Example #6
0
def test_parse_iterator_last_frame():
    atoms = [
        ('C', (5.0, 5.0, 5.0)),
        ('H', (5.6401902064, 5.6401902064, 5.6401902064)),
        ('H', (4.3598097942, 4.3598097942, 5.6401902063)),
        ('H', (4.3598097942, 5.6401902063, 4.3598097942)),
        ('H', (5.6401902063, 4.3598097942, 4.3598097942)) ]

    with open('tests/test_xyz_parser-simple_multiframe_file.xyz', 'r') as f:
        s = f.read()

        frame_iterator = XYZParser.parse_iter(s)
        for (natoms, comment, atomiter) in frame_iterator:
            pass

        assert natoms == 5
        assert comment == 'i =        3, E =        -8.0632890314'
        assert list(atomiter) == atoms
#!/usr/bin/env python3

from cp2k.parser import XYZParser

if __name__ == '__main__':

    f = open('tests/test_xyz_parser-simple_multiframe_file.xyz', 'r')
    s = f.read()

    print("\nprint them all")
    print("==============")
    frame_nr = 0
    for (natoms, comment, atomiter) in XYZParser.parse_iter(s):
        frame_nr += 1
        print("Frame {:0>4d} => natoms : {}, comment : '{}'".format(frame_nr, natoms, comment))
        for (sym, (x, y, z)) in atomiter:
            print("  {}: {: >30.20f} {:>30.20f} {:>30.20f}".format(sym, x, y, z))
    print("")

    print("get to the last frame as a tuple")
    print("================================")
    for last in XYZParser.parse_iter(s):
        pass
    print(last)
    print("")

    print("get to the last frame but unpacked")
    print("==================================")
    for (last_natoms, last_comment, last_atomiter) in XYZParser.parse_iter(s):
        pass
    print(last_natoms, last_comment, last_atomiter)
#!/usr/bin/env python3

from cp2k.parser import XYZParser

if __name__ == '__main__':

    f = open('tests/test_xyz_parser-simple_multiframe_file.xyz', 'r')
    s = f.read()

    print("\nprint them all")
    print("==============")
    frame_nr = 0
    for (natoms, comment, atomiter) in XYZParser.parse_iter(s):
        frame_nr += 1
        print("Frame {:0>4d} => natoms : {}, comment : '{}'".format(
            frame_nr, natoms, comment))
        for (sym, (x, y, z)) in atomiter:
            print("  {}: {: >30.20f} {:>30.20f} {:>30.20f}".format(
                sym, x, y, z))
    print("")

    print("get to the last frame as a tuple")
    print("================================")
    for last in XYZParser.parse_iter(s):
        pass
    print(last)
    print("")

    print("get to the last frame but unpacked")
    print("==================================")
    for (last_natoms, last_comment, last_atomiter) in XYZParser.parse_iter(s):