Source code for scibeam.tests.test_regexp

# test_regexp.py --- 
# 
# Filename: test_regexp.py
# Description: 
# 
# Author:    Yu Lu
# Email:     yulu@utexas.edu
# Github:    https://github.com/SuperYuLu 
# 
# Created: Wed Jul 25 00:17:55 2018 (-0500)
# Version: 
# Last-Updated: Sat Jul 28 15:04:02 2018 (-0500)
#           By: yulu
#     Update #: 59
# 

import unittest
import pkg_resources
import re
from scibeam import RegMatch



DATA_PATH = pkg_resources.resource_filename('scibeam', 'data/test/time_series_2D/')

[docs]class TestRegmatch(unittest.TestCase):
[docs] def setUp(self): try: self.rgm_single = RegMatch('.*_(\d+\.\d+)in_.*.lvm$') self.rgm_multi = RegMatch(['.*_(APD\d+)_.*.lvm$', '.*_(\d+\.\d+)in_.*.lvm$']) except: self.fail("Initialize class RegMatch instance failed !") else: self.assertTrue(hasattr(self.rgm_single.regex, 'match')) self.assertTrue(hasattr(self.rgm_multi.regex, '__iter__'))
[docs] def test_single_regex_match(self): sample = ['20180314_APD1_0.77500in_scan.lvm', '20180314_APD1_0.92500in_scan.lvm'] regex = '.*(APD\d+)_(\d+\.\d+)in_.*.lvm$' # Test when being matched is a single string self.assertEqual(self.rgm_single.single_regex_match(regex, sample[0], group = 1, asNumber = False), {'APD1': '20180314_APD1_0.77500in_scan.lvm'}) self.assertEqual(self.rgm_single.single_regex_match(regex, sample[0], group = 2, asNumber = False), {'0.77500': '20180314_APD1_0.77500in_scan.lvm'}) self.assertEqual(self.rgm_single.single_regex_match(regex, sample[0], group = 2, asNumber = True), {0.775: '20180314_APD1_0.77500in_scan.lvm'}) # Test when being matched is a list of strings self.assertEqual(self.rgm_single.single_regex_match(regex, sample, group = 1, asNumber = False), {'APD1': ['20180314_APD1_0.77500in_scan.lvm', '20180314_APD1_0.92500in_scan.lvm']}) self.assertEqual(self.rgm_single.single_regex_match(regex, sample, group = 2, asNumber = False), {'0.77500': '20180314_APD1_0.77500in_scan.lvm', '0.92500': '20180314_APD1_0.92500in_scan.lvm'}) self.assertEqual(self.rgm_single.single_regex_match(regex, sample, group = 2, asNumber = True), {0.775: '20180314_APD1_0.77500in_scan.lvm', 0.925: '20180314_APD1_0.92500in_scan.lvm'})
[docs] def test_match(self): sample = ['20180314_APD1_0.77500in_scan.lvm', '20180314_APD1_0.92500in_scan.lvm'] # one to one self.assertEqual(self.rgm_single.match(sample[0], group = 1, asNumber = True), {0.775: '20180314_APD1_0.77500in_scan.lvm'}) self.assertEqual(self.rgm_single.match(sample[0], group = 1, asNumber = False), {'0.77500': '20180314_APD1_0.77500in_scan.lvm'}) # one to multi self.assertEqual(self.rgm_single.match(sample, group = 1, asNumber = True), {0.775: '20180314_APD1_0.77500in_scan.lvm', 0.925: '20180314_APD1_0.92500in_scan.lvm'}) self.assertEqual(self.rgm_single.match(sample, group = 1, asNumber = False), {'0.77500': '20180314_APD1_0.77500in_scan.lvm', '0.92500': '20180314_APD1_0.92500in_scan.lvm'}) # multi to one self.assertEqual(self.rgm_multi.match(sample[0], group = 1, asNumber = False), [{'APD1': '20180314_APD1_0.77500in_scan.lvm'}, {'0.77500': '20180314_APD1_0.77500in_scan.lvm'}]) # multi to multi self.assertEqual(self.rgm_multi.match(sample, group = 1, asNumber = False), [{'APD1': ['20180314_APD1_0.77500in_scan.lvm', '20180314_APD1_0.92500in_scan.lvm']}, {'0.77500': '20180314_APD1_0.77500in_scan.lvm', '0.92500': '20180314_APD1_0.92500in_scan.lvm'}])
[docs] def test_matchFolder(self): self.assertEqual(self.rgm_single.matchFolder(DATA_PATH, asNumber = True), {0.3: '20180314_APD1_0.30000in_scan.lvm', 0.325: '20180314_APD1_0.32500in_scan.lvm', 0.35: '20180314_APD1_0.35000in_scan.lvm', 0.375: '20180314_APD1_0.37500in_scan.lvm', 0.4: '20180314_APD1_0.40000in_scan.lvm'}) self.assertEqual(self.rgm_single.matchFolder(DATA_PATH, asNumber = False), {'0.30000': '20180314_APD1_0.30000in_scan.lvm', '0.32500': '20180314_APD1_0.32500in_scan.lvm', '0.35000': '20180314_APD1_0.35000in_scan.lvm', '0.37500': '20180314_APD1_0.37500in_scan.lvm', '0.40000': '20180314_APD1_0.40000in_scan.lvm'}) self.assertEqual(self.rgm_multi.matchFolder(DATA_PATH, asNumber = False), {'APD1': {'0.30000': '20180314_APD1_0.30000in_scan.lvm', '0.32500': '20180314_APD1_0.32500in_scan.lvm', '0.35000': '20180314_APD1_0.35000in_scan.lvm', '0.37500': '20180314_APD1_0.37500in_scan.lvm', '0.40000': '20180314_APD1_0.40000in_scan.lvm'} })