Current Dev State

This commit is contained in:
Tim Lorsbach
2025-06-23 20:13:54 +02:00
parent b4f9bb277d
commit ded50edaa2
22617 changed files with 4345095 additions and 174 deletions

View File

@ -0,0 +1,959 @@
import gzip
import json
from django.conf import settings as s
from django.test import TestCase
from utilities.chem import FormatConverter
class RuleApplicationTest(TestCase):
def setUp(self):
self.total_errors = 0
@classmethod
def setUpClass(cls):
super(RuleApplicationTest, cls).setUpClass()
cls.data = json.load(gzip.open(s.BASE_DIR / 'fixtures' / 'ambit_rules.json.gz', 'rb'))
cls.error_smiles = list()
@classmethod
def tearDownClass(cls):
from collections import Counter
# print(Counter(cls.error_smiles))
pass
def tearDown(self):
print(f"\nTotal errors {self.total_errors}")
def run_bt_test(self, bt_rule_name):
bt_rule = self.data[bt_rule_name]
smirks = bt_rule['smirks']
res = True
all_prods = set()
for comp, ambit_prod in zip(bt_rule['compounds'], bt_rule['products']):
smi = comp['smiles']
products = FormatConverter.apply(smi, smirks, preprocess_smiles=True, bracketize=False)
all_rdkit_prods = []
for ps in products:
for p in ps:
all_rdkit_prods.append(p)
all_rdkit_prods = list(set(all_rdkit_prods))
ambit_smiles, ambit_errors = FormatConverter.sanitize_smiles(ambit_prod)
rdkit_smiles, rdkit_errors = FormatConverter.sanitize_smiles(all_rdkit_prods)
for x in ambit_smiles:
all_prods.add(x)
# TODO mode "intersection"
# partial_res = (len(set(ambit_smiles).intersection(set(rdkit_smiles))) > 0) or (len(ambit_smiles) == 0)
# FAILED (failures=42)
# TODO mode = "full ambit"
# partial_res = len(set(ambit_smiles).intersection(set(rdkit_smiles))) == len(ambit_smiles)
# FAILED (failures=52)
# TODO mode = "equality"
partial_res = set(ambit_smiles) == set(rdkit_smiles)
# FAILED (failures=71)
if len(ambit_smiles) and not partial_res:
print(f"""
BT {bt_rule_name}
SMIRKS {bt_rule['smirks']}
Compound {comp['smiles']}
Num ambit {len(set(ambit_smiles))}
Num rdkit {len(set(rdkit_smiles))}
Num Intersection A {len(set(ambit_smiles).intersection(set(rdkit_smiles)))}
Num Intersection B {len(set(rdkit_smiles).intersection(set(ambit_smiles)))}
Difference A: {set(ambit_smiles).difference(set(rdkit_smiles))}
Difference B: {set(rdkit_smiles).difference(set(ambit_smiles))}
ambit products {ambit_smiles}
rdkit products {rdkit_smiles}
ambit_errors: {ambit_errors}
rdkit_errors: {rdkit_errors}
""")
if not partial_res:
self.error_smiles.append(comp['smiles'])
self.total_errors += 1
res &= partial_res
self.assertTrue(res)
def test_bt0349_3023(self):
self.run_bt_test('bt0349-3023')
def test_bt0306_3442(self):
self.run_bt_test('bt0306-3442')
def test_bt0342_4298_1(self):
self.run_bt_test('bt0342-4298.1')
def test_bt0064_3707(self):
self.run_bt_test('bt0064-3707')
def test_bt0108_470(self):
self.run_bt_test('bt0108-470')
def test_bt0231_1871_2(self):
self.run_bt_test('bt0231-1871.2')
def test_bt0374_4148(self):
self.run_bt_test('bt0374-4148')
def test_bt0417_3777(self):
self.run_bt_test('bt0417-3777')
def test_bt0153_3077(self):
self.run_bt_test('bt0153-3077')
def test_bt0213_3524(self):
self.run_bt_test('bt0213-3524')
def test_bt0257_3855_2(self):
self.run_bt_test('bt0257-3855.2')
def test_bt0037_3717(self):
self.run_bt_test('bt0037-3717')
def test_bt0102_4062(self):
self.run_bt_test('bt0102-4062')
def test_bt0431_4039(self):
self.run_bt_test('bt0431-4039')
def test_bt0444_4310(self):
self.run_bt_test('bt0444-4310')
def test_bt0242_3803(self):
self.run_bt_test('bt0242-3803')
def test_bt0231_1871_3(self):
self.run_bt_test('bt0231-1871.3')
def test_bt0388_4159(self):
self.run_bt_test('bt0388-4159')
def test_bt0022_2833(self):
self.run_bt_test('bt0022-2833')
def test_bt0393_3367(self):
self.run_bt_test('bt0393-3367')
def test_bt0282_3656(self):
self.run_bt_test('bt0282-3656')
def test_bt0399_3488(self):
self.run_bt_test('bt0399-3488')
def test_bt0330_3930(self):
self.run_bt_test('bt0330-3930')
def test_bt0363_4185(self):
self.run_bt_test('bt0363-4185')
def test_bt0243_4301(self):
self.run_bt_test('bt0243-4301')
def test_bt0407_3651(self):
self.run_bt_test('bt0407-3651')
def test_bt0055_3469_3(self):
self.run_bt_test('bt0055-3469.3')
def test_bt0230_3525(self):
self.run_bt_test('bt0230-3525')
def test_bt0051_3151(self):
self.run_bt_test('bt0051-3151')
def test_bt0212_3523(self):
self.run_bt_test('bt0212-3523')
def test_bt0005_4282(self):
self.run_bt_test('bt0005-4282')
def test_bt0037_3718(self):
self.run_bt_test('bt0037-3718')
def test_bt0418_3842(self):
self.run_bt_test('bt0418-3842')
def test_bt0062_925(self):
self.run_bt_test('bt0062-925')
def test_bt0428_3946(self):
self.run_bt_test('bt0428-3946')
def test_bt0420_3811(self):
self.run_bt_test('bt0420-3811')
def test_bt0351_3769(self):
self.run_bt_test('bt0351-3769')
def test_bt0383_3210(self):
self.run_bt_test('bt0383-3210')
def test_bt0421_3907(self):
self.run_bt_test('bt0421-3907')
def test_bt0079_1087(self):
self.run_bt_test('bt0079-1087')
def test_bt0013_4165_2(self):
self.run_bt_test('bt0013-4165.2')
def test_bt0337_3542(self):
self.run_bt_test('bt0337-3542')
def test_bt0325_3638(self):
self.run_bt_test('bt0325-3638')
def test_bt0435_4212(self):
self.run_bt_test('bt0435-4212')
def test_bt0071_4150(self):
self.run_bt_test('bt0071-4150')
def test_bt0351_3944(self):
self.run_bt_test('bt0351-3944')
def test_bt0270_3919(self):
self.run_bt_test('bt0270-3919')
def test_bt0349_2798(self):
self.run_bt_test('bt0349-2798')
def test_bt0154_1367(self):
self.run_bt_test('bt0154-1367')
def test_bt0401_3575(self):
self.run_bt_test('bt0401-3575')
def test_bt0430_4011(self):
self.run_bt_test('bt0430-4011')
def test_bt0337_3545(self):
self.run_bt_test('bt0337-3545')
def test_bt0389_3302(self):
self.run_bt_test('bt0389-3302')
def test_bt0346_2639(self):
self.run_bt_test('bt0346-2639')
def test_bt0268_3530(self):
self.run_bt_test('bt0268-3530')
def test_bt0379_3190(self):
self.run_bt_test('bt0379-3190')
def test_bt0013_4165(self):
self.run_bt_test('bt0013-4165')
def test_bt0351_2780(self):
self.run_bt_test('bt0351-2780')
def test_bt0353_4167(self):
self.run_bt_test('bt0353-4167')
def test_bt0291_1129(self):
self.run_bt_test('bt0291-1129')
def test_bt0103_3648(self):
self.run_bt_test('bt0103-3648')
def test_bt0044_3232(self):
self.run_bt_test('bt0044-3232')
def test_bt0110_3663(self):
self.run_bt_test('bt0110-3663')
def test_bt0107_3557(self):
self.run_bt_test('bt0107-3557')
def test_bt0034_2448(self):
self.run_bt_test('bt0034-2448')
def test_bt0073_3591(self):
self.run_bt_test('bt0073-3591')
def test_bt0219_4295(self):
self.run_bt_test('bt0219-4295')
def test_bt0066_3867(self):
self.run_bt_test('bt0066-3867')
def test_bt0295_3520(self):
self.run_bt_test('bt0295-3520')
def test_bt0021_3858(self):
self.run_bt_test('bt0021-3858')
def test_bt0177_3159(self):
self.run_bt_test('bt0177-3159')
def test_bt0318_3664(self):
self.run_bt_test('bt0318-3664')
def test_bt0080_4217(self):
self.run_bt_test('bt0080-4217')
def test_bt0181_1278(self):
self.run_bt_test('bt0181-1278')
def test_bt0254_4224_2(self):
self.run_bt_test('bt0254-4224.2')
def test_bt0237_2957(self):
self.run_bt_test('bt0237-2957')
def test_bt0342_4298_2(self):
self.run_bt_test('bt0342-4298.2')
def test_bt0280_2426(self):
self.run_bt_test('bt0280-2426')
def test_bt0438_4230(self):
self.run_bt_test('bt0438-4230')
def test_bt0270_3922(self):
self.run_bt_test('bt0270-3922')
def test_bt0021_3859(self):
self.run_bt_test('bt0021-3859')
def test_bt0323_3394(self):
self.run_bt_test('bt0323-3394')
def test_bt0408_3666(self):
self.run_bt_test('bt0408-3666')
def test_bt0429_4043(self):
self.run_bt_test('bt0429-4043')
def test_bt0198_546(self):
self.run_bt_test('bt0198-546')
def test_bt0312_3818(self):
self.run_bt_test('bt0312-3818')
def test_bt0348_4121(self):
self.run_bt_test('bt0348-4121')
def test_bt0153_3078(self):
self.run_bt_test('bt0153-3078')
def test_bt0031_1217(self):
self.run_bt_test('bt0031-1217')
def test_bt0184_4187(self):
self.run_bt_test('bt0184-4187')
def test_bt0055_3469_4(self):
self.run_bt_test('bt0055-3469.4')
def test_bt0257_3855_1(self):
self.run_bt_test('bt0257-3855.1')
def test_bt0242_3804(self):
self.run_bt_test('bt0242-3804')
def test_bt0077_441(self):
self.run_bt_test('bt0077-441')
def test_bt0011_4163(self):
self.run_bt_test('bt0011-4163')
def test_bt0270_3921(self):
self.run_bt_test('bt0270-3921')
def test_bt0376_4266(self):
self.run_bt_test('bt0376-4266')
def test_bt0036_3571(self):
self.run_bt_test('bt0036-3571')
def test_bt0352_4297_1(self):
self.run_bt_test('bt0352-4297.1')
def test_bt0199_3639(self):
self.run_bt_test('bt0199-3639')
def test_bt0143_3211(self):
self.run_bt_test('bt0143-3211')
def test_bt0020_1610(self):
self.run_bt_test('bt0020-1610')
def test_bt0440_4255(self):
self.run_bt_test('bt0440-4255')
def test_bt0286_846(self):
self.run_bt_test('bt0286-846')
def test_bt0337_3543(self):
self.run_bt_test('bt0337-3543')
def test_bt0416_4269(self):
self.run_bt_test('bt0416-4269')
def test_bt0195_3744(self):
self.run_bt_test('bt0195-3744')
def test_bt0334_3582(self):
self.run_bt_test('bt0334-3582')
def test_bt0327_3585(self):
self.run_bt_test('bt0327-3585')
def test_bt0384_4048(self):
self.run_bt_test('bt0384-4048')
def test_bt0056_2685(self):
self.run_bt_test('bt0056-2685')
def test_bt0337_4117(self):
self.run_bt_test('bt0337-4117')
def test_bt0405_3633(self):
self.run_bt_test('bt0405-3633')
def test_bt0439_4270(self):
self.run_bt_test('bt0439-4270')
def test_bt0332_3924(self):
self.run_bt_test('bt0332-3924')
def test_bt0423_3876(self):
self.run_bt_test('bt0423-3876')
def test_bt0351_3138(self):
self.run_bt_test('bt0351-3138')
def test_bt0351_4118(self):
self.run_bt_test('bt0351-4118')
def test_bt0147_3336(self):
self.run_bt_test('bt0147-3336')
def test_bt0067_4013(self):
self.run_bt_test('bt0067-4013')
def test_bt0063_3938(self):
self.run_bt_test('bt0063-3938')
def test_bt0166_3560(self):
self.run_bt_test('bt0166-3560')
def test_bt0156_3659(self):
self.run_bt_test('bt0156-3659')
def test_bt0372_3657(self):
self.run_bt_test('bt0372-3657')
def test_bt0012_4164_2(self):
self.run_bt_test('bt0012-4164.2')
def test_bt0359_3668(self):
self.run_bt_test('bt0359-3668')
def test_bt0385_3220(self):
self.run_bt_test('bt0385-3220')
def test_bt0403_3595(self):
self.run_bt_test('bt0403-3595')
def test_bt0231_1871_4(self):
self.run_bt_test('bt0231-1871.4')
def test_bt0003_1196(self):
self.run_bt_test('bt0003-1196')
def test_bt0397_3475(self):
self.run_bt_test('bt0397-3475')
def test_bt0066_3856(self):
self.run_bt_test('bt0066-3856')
def test_bt0423_3824(self):
self.run_bt_test('bt0423-3824')
def test_bt0374_3801(self):
self.run_bt_test('bt0374-3801')
def test_bt0357_2817(self):
self.run_bt_test('bt0357-2817')
def test_bt0281_676(self):
self.run_bt_test('bt0281-676')
def test_bt0192_3861(self):
self.run_bt_test('bt0192-3861')
def test_bt0218_3579(self):
self.run_bt_test('bt0218-3579')
def test_bt0055_3469_2(self):
self.run_bt_test('bt0055-3469.2')
def test_bt0349_4276(self):
self.run_bt_test('bt0349-4276')
def test_bt0055_3469_1(self):
self.run_bt_test('bt0055-3469.1')
def test_bt0420_3794(self):
self.run_bt_test('bt0420-3794')
def test_bt0352_2748(self):
self.run_bt_test('bt0352-2748')
def test_bt0078_232(self):
self.run_bt_test('bt0078-232')
def test_bt0051_3093(self):
self.run_bt_test('bt0051-3093')
def test_bt0035_1206(self):
self.run_bt_test('bt0035-1206')
def test_bt0070_3850(self):
self.run_bt_test('bt0070-3850')
def test_bt0343_2675(self):
self.run_bt_test('bt0343-2675')
def test_bt0392_3341(self):
self.run_bt_test('bt0392-3341')
def test_bt0068_3564(self):
self.run_bt_test('bt0068-3564')
def test_bt0005_3776(self):
self.run_bt_test('bt0005-3776')
def test_bt0324_3864(self):
self.run_bt_test('bt0324-3864')
def test_bt0002_3673(self):
self.run_bt_test('bt0002-3673')
def test_bt0366_2884(self):
self.run_bt_test('bt0366-2884')
def test_bt0288_2641(self):
self.run_bt_test('bt0288-2641')
def test_bt0210_3411(self):
self.run_bt_test('bt0210-3411')
def test_bt0180_2844(self):
self.run_bt_test('bt0180-2844')
def test_bt0255_2690_4(self):
self.run_bt_test('bt0255-2690.4')
def test_bt0337_3544(self):
self.run_bt_test('bt0337-3544')
def test_bt0217_3026(self):
self.run_bt_test('bt0217-3026')
def test_bt0065_4171(self):
self.run_bt_test('bt0065-4171')
def test_bt0443_4291(self):
self.run_bt_test('bt0443-4291')
def test_bt0386_3347(self):
self.run_bt_test('bt0386-3347')
def test_bt0104_2853(self):
self.run_bt_test('bt0104-2853')
def test_bt0104_2854(self):
self.run_bt_test('bt0104-2854')
def test_bt0349_3022(self):
self.run_bt_test('bt0349-3022')
def test_bt0427_3943(self):
self.run_bt_test('bt0427-3943')
def test_bt0350_3319(self):
self.run_bt_test('bt0350-3319')
def test_bt0166_3562(self):
self.run_bt_test('bt0166-3562')
def test_bt0318_4289(self):
self.run_bt_test('bt0318-4289')
def test_bt0352_2746(self):
self.run_bt_test('bt0352-2746')
def test_bt0014_4215(self):
self.run_bt_test('bt0014-4215')
def test_bt0190_1386(self):
self.run_bt_test('bt0190-1386')
def test_bt0345_2623(self):
self.run_bt_test('bt0345-2623')
def test_bt0370_2992(self):
self.run_bt_test('bt0370-2992')
def test_bt0156_3660(self):
self.run_bt_test('bt0156-3660')
def test_bt0387_3298(self):
self.run_bt_test('bt0387-3298')
def test_bt0030_4292(self):
self.run_bt_test('bt0030-4292')
def test_bt0388_3311(self):
self.run_bt_test('bt0388-3311')
def test_bt0060_4170(self):
self.run_bt_test('bt0060-4170')
def test_bt0144_4271(self):
self.run_bt_test('bt0144-4271')
def test_bt0188_1382(self):
self.run_bt_test('bt0188-1382')
def test_bt0082_2982(self):
self.run_bt_test('bt0082-2982')
def test_bt0425_3892(self):
self.run_bt_test('bt0425-3892')
def test_bt0254_4224_1(self):
self.run_bt_test('bt0254-4224.1')
def test_bt0202_3925(self):
self.run_bt_test('bt0202-3925')
def test_bt0333_3583(self):
self.run_bt_test('bt0333-3583')
def test_bt0058_2811(self):
self.run_bt_test('bt0058-2811')
def test_bt0352_2745(self):
self.run_bt_test('bt0352-2745')
def test_bt0034_4082(self):
self.run_bt_test('bt0034-4082')
def test_bt0375_3152(self):
self.run_bt_test('bt0375-3152')
def test_bt0231_1871_1(self):
self.run_bt_test('bt0231-1871.1')
def test_bt0362_3080(self):
self.run_bt_test('bt0362-3080')
def test_bt0350_3318(self):
self.run_bt_test('bt0350-3318')
def test_bt0337_3901(self):
self.run_bt_test('bt0337-3901')
def test_bt0001_3568(self):
self.run_bt_test('bt0001-3568')
def test_bt0391_4285(self):
self.run_bt_test('bt0391-4285')
def test_bt0434_4149(self):
self.run_bt_test('bt0434-4149')
def test_bt0156_3760(self):
self.run_bt_test('bt0156-3760')
def test_bt0216_3640(self):
self.run_bt_test('bt0216-3640')
def test_bt0330_3931(self):
self.run_bt_test('bt0330-3931')
def test_bt0320_3863(self):
self.run_bt_test('bt0320-3863')
def test_bt0352_2744(self):
self.run_bt_test('bt0352-2744')
def test_bt0348_4120(self):
self.run_bt_test('bt0348-4120')
def test_bt0255_2690_2(self):
self.run_bt_test('bt0255-2690.2')
def test_bt0024_2218(self):
self.run_bt_test('bt0024-2218')
def test_bt0033_1219(self):
self.run_bt_test('bt0033-1219')
def test_bt0418_3806(self):
self.run_bt_test('bt0418-3806')
def test_bt0208_3256(self):
self.run_bt_test('bt0208-3256')
def test_bt0072_4172(self):
self.run_bt_test('bt0072-4172')
def test_bt0362_2882(self):
self.run_bt_test('bt0362-2882')
def test_bt0374_4081(self):
self.run_bt_test('bt0374-4081')
def test_bt0023_3819(self):
self.run_bt_test('bt0023-3819')
def test_bt0404_3928(self):
self.run_bt_test('bt0404-3928')
def test_bt0260_2032(self):
self.run_bt_test('bt0260-2032')
def test_bt0042_4168(self):
self.run_bt_test('bt0042-4168')
def test_bt0416_4253(self):
self.run_bt_test('bt0416-4253')
def test_bt0173_1376(self):
self.run_bt_test('bt0173-1376')
def test_bt0214_1877(self):
self.run_bt_test('bt0214-1877')
def test_bt0353_4312(self):
self.run_bt_test('bt0353-4312')
def test_bt0436_4247(self):
self.run_bt_test('bt0436-4247')
def test_bt0124_3980(self):
self.run_bt_test('bt0124-3980')
def test_bt0275_899(self):
self.run_bt_test('bt0275-899')
def test_bt0390_3346(self):
self.run_bt_test('bt0390-3346')
def test_bt0255_3670(self):
self.run_bt_test('bt0255-3670')
def test_bt0298_3335(self):
self.run_bt_test('bt0298-3335')
def test_bt0366_2930(self):
self.run_bt_test('bt0366-2930')
def test_bt0270_3920(self):
self.run_bt_test('bt0270-3920')
def test_bt0241_3580(self):
self.run_bt_test('bt0241-3580')
def test_bt0028_3647(self):
self.run_bt_test('bt0028-3647')
def test_bt0255_2690_3(self):
self.run_bt_test('bt0255-2690.3')
def test_bt0257_3855_4(self):
self.run_bt_test('bt0257-3855.4')
def test_bt0373_3577(self):
self.run_bt_test('bt0373-3577')
def test_bt0255_2690_1(self):
self.run_bt_test('bt0255-2690.1')
def test_bt0364_2870(self):
self.run_bt_test('bt0364-2870')
def test_bt0086_4153(self):
self.run_bt_test('bt0086-4153')
def test_bt0398_3470(self):
self.run_bt_test('bt0398-3470')
def test_bt0086_4152(self):
self.run_bt_test('bt0086-4152')
def test_bt0339_3800(self):
self.run_bt_test('bt0339-3800')
def test_bt0362_3079(self):
self.run_bt_test('bt0362-3079')
def test_bt0340_4250(self):
self.run_bt_test('bt0340-4250')
def test_bt0050_2173(self):
self.run_bt_test('bt0050-2173')
def test_bt0388_3799(self):
self.run_bt_test('bt0388-3799')
def test_bt0348_4122(self):
self.run_bt_test('bt0348-4122')
def test_bt0269_3646(self):
self.run_bt_test('bt0269-3646')
def test_bt0103_3816(self):
self.run_bt_test('bt0103-3816')
def test_bt0158_3361(self):
self.run_bt_test('bt0158-3361')
def test_bt0128_4173(self):
self.run_bt_test('bt0128-4173')
def test_bt0051_3573(self):
self.run_bt_test('bt0051-3573')
def test_bt0348_3840(self):
self.run_bt_test('bt0348-3840')
def test_bt0184_3607(self):
self.run_bt_test('bt0184-3607')
def test_bt0063_2552(self):
self.run_bt_test('bt0063-2552')
def test_bt0330_3929(self):
self.run_bt_test('bt0330-3929')
def test_bt0146_3853(self):
self.run_bt_test('bt0146-3853')
def test_bt0397_3474(self):
self.run_bt_test('bt0397-3474')
def test_bt0257_3855_3(self):
self.run_bt_test('bt0257-3855.3')
def test_bt0402_3576(self):
self.run_bt_test('bt0402-3576')
def test_bt0259_3814(self):
self.run_bt_test('bt0259-3814')
def test_bt0023_3854(self):
self.run_bt_test('bt0023-3854')
def test_bt0027_3456(self):
self.run_bt_test('bt0027-3456')
def test_bt0055_4169(self):
self.run_bt_test('bt0055-4169')
def test_bt0051_3501(self):
self.run_bt_test('bt0051-3501')
def test_bt0011_4163_2(self):
self.run_bt_test('bt0011-4163.2')
def test_bt0352_4297_2(self):
self.run_bt_test('bt0352-4297.2')
def test_bt0012_4164(self):
self.run_bt_test('bt0012-4164')
def test_bt0316_4136(self):
self.run_bt_test('bt0316-4136')
def test_bt0026_4218(self):
self.run_bt_test('bt0026-4218')
def test_bt0234_3381(self):
self.run_bt_test('bt0234-3381')
def test_bt0377_4300(self):
self.run_bt_test('bt0377-4300')
def test_bt0061_2451(self):
self.run_bt_test('bt0061-2451')
def test_bt0313_1587(self):
self.run_bt_test('bt0313-1587')
def test_bt0348_4119(self):
self.run_bt_test('bt0348-4119')
def test_bt0193_4263(self):
self.run_bt_test('bt0193-4263')
def test_bt0378_3188(self):
self.run_bt_test('bt0378-3188')
def test_bt0242_3805(self):
self.run_bt_test('bt0242-3805')
def test_bt0432_4254(self):
self.run_bt_test('bt0432-4254')
def test_bt0189_1410(self):
self.run_bt_test('bt0189-1410')
def test_bt0284_3687(self):
self.run_bt_test('bt0284-3687')
def test_bt0351_3908(self):
self.run_bt_test('bt0351-3908')
def test_bt0029_3674(self):
self.run_bt_test('bt0029-3674')
def test_bt0158_3397(self):
self.run_bt_test('bt0158-3397')
def test_bt0361_4141(self):
self.run_bt_test('bt0361-4141')
def test_bt0225_3862(self):
self.run_bt_test('bt0225-3862')
def test_bt0209_3257(self):
self.run_bt_test('bt0209-3257')
def test_bt0049_3745(self):
self.run_bt_test('bt0049-3745')
def test_bt0358_3553(self):
self.run_bt_test('bt0358-3553')
def test_bt0162_4180(self):
self.run_bt_test('bt0162-4180')
def test_bt0227_1872(self):
self.run_bt_test('bt0227-1872')
def test_bt0226_141(self):
self.run_bt_test('bt0226-141')
def test_bt0322_3393(self):
self.run_bt_test('bt0322-3393')