项目文件夹

文件
Mufei Li 334e6434d2 [DGL-Go] CI for DGL-Go (#3959)
* Update

* Update

* Fix

* Update

* CI

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update
2022-05-06 12:26:50 +08:00

93 行
4.8 KiB
Python

import os
import pytest
@pytest.mark.parametrize('data', ['cora', 'citeseer', 'pubmed', 'csv', 'reddit',
'co-buy-computer', 'ogbn-arxiv', 'ogbn-products'])
@pytest.mark.parametrize('model', ['gcn', 'gat', 'sage', 'sgc', 'gin'])
def test_nodepred(data, model):
os.system('dgl configure nodepred --data {} --model {}'.format(data, model))
assert os.path.exists('nodepred_{}_{}.yaml'.format(data, model))
custom_config_file = 'custom_{}_{}.yaml'.format(data, model)
os.system('dgl configure nodepred --data {} --model {} --cfg {}'.format(data, model,
custom_config_file))
assert os.path.exists(custom_config_file)
custom_script = '_'.join([data, model]) + '.py'
os.system('dgl export --cfg {} --output {}'.format(custom_config_file, custom_script))
assert os.path.exists(custom_script)
@pytest.mark.parametrize('data', ['cora', 'citeseer', 'pubmed', 'csv', 'reddit',
'co-buy-computer', 'ogbn-arxiv', 'ogbn-products'])
@pytest.mark.parametrize('model', ['gcn', 'gat', 'sage'])
def test_nodepred_ns(data, model):
os.system('dgl configure nodepred-ns --data {} --model {}'.format(data, model))
assert os.path.exists('nodepred-ns_{}_{}.yaml'.format(data, model))
custom_config_file = 'custom_{}_{}.yaml'.format(data, model)
os.system('dgl configure nodepred-ns --data {} --model {} --cfg {}'.format(data, model,
custom_config_file))
assert os.path.exists(custom_config_file)
custom_script = '_'.join([data, model]) + '.py'
os.system('dgl export --cfg {} --output {}'.format(custom_config_file, custom_script))
assert os.path.exists(custom_script)
@pytest.mark.parametrize('data', ['cora', 'citeseer', 'pubmed', 'csv', 'reddit',
'co-buy-computer', 'ogbn-arxiv', 'ogbn-products', 'ogbl-collab',
'ogbl-citation2'])
@pytest.mark.parametrize('node_model', ['gcn' ,'gat', 'sage', 'sgc', 'gin'])
@pytest.mark.parametrize('edge_model', ['ele', 'bilinear'])
@pytest.mark.parametrize('neg_sampler', ['global', 'persource'])
def test_linkpred(data, node_model, edge_model, neg_sampler):
custom_config_file = '_'.join([data, node_model, edge_model, neg_sampler]) + '.yaml'
os.system('dgl configure linkpred --data {} --node-model {} --edge-model {} --neg-sampler {} --cfg {}'.format(
data, node_model, edge_model, neg_sampler, custom_config_file))
assert os.path.exists(custom_config_file)
custom_script = '_'.join([data, node_model, edge_model, neg_sampler]) + '.py'
os.system('dgl export --cfg {} --output {}'.format(custom_config_file, custom_script))
assert os.path.exists(custom_script)
@pytest.mark.parametrize('data', ['cora', 'citeseer', 'pubmed', 'csv', 'reddit',
'co-buy-computer', 'ogbn-arxiv', 'ogbn-products', 'ogbl-collab',
'ogbl-citation2'])
@pytest.mark.parametrize('node_model', ['gcn' ,'gat', 'sage', 'sgc', 'gin'])
@pytest.mark.parametrize('edge_model', ['ele', 'bilinear'])
def test_linkpred_default_neg_sampler(data, node_model, edge_model):
custom_config_file = '_'.join([data, node_model, edge_model]) + '.yaml'
os.system('dgl configure linkpred --data {} --node-model {} --edge-model {} --cfg {}'.format(
data, node_model, edge_model, custom_config_file))
assert os.path.exists(custom_config_file)
@pytest.mark.parametrize('recipe',
['linkpred_cora_sage.yaml',
'linkpred_citation2_sage.yaml',
'linkpred_collab_sage.yaml',
'nodepred_citeseer_gat.yaml',
'nodepred_citeseer_gcn.yaml',
'nodepred_citeseer_sage.yaml',
'nodepred_cora_gat.yaml',
'nodepred_cora_gcn.yaml',
'nodepred_cora_sage.yaml',
'nodepred_pubmed_gat.yaml',
'nodepred_pubmed_gcn.yaml',
'nodepred_pubmed_sage.yaml',
'nodepred-ns_arxiv_gcn.yaml',
'nodepred-ns_product_sage.yaml'])
def test_recipe(recipe):
# Remove all generated yaml files
current_dir = os.listdir("./")
for item in current_dir:
if item.endswith(".yaml"):
os.remove(item)
os.system('dgl recipe get {}'.format(recipe))
assert os.path.exists(recipe)
def test_node_cora():
os.system('dgl configure nodepred --data cora --model gcn')
os.system('dgl train --cfg nodepred_cora_gcn.yaml')
assert os.path.exists('checkpoint.pth')
assert os.path.exists('model.pth')