This file is indexed.

/usr/share/perl5/Test/Attean/QuadStore.pm is in libattean-perl 0.017-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
package Test::Attean::QuadStore;

use v5.14;
use warnings;
use Test::Roo::Role;
use Test::Moose;
use Attean;
use Attean::RDF;

requires 'create_store';		# create_store( quads => \@quads )
with 'Test::Attean::StoreCleanup';

test 'quadstore roles' => sub {
	my $self	= shift;
	my $store	= $self->create_store(quads => []);
	ok $store->does('Attean::API::Store');
	ok $store->does('Attean::API::QuadStore');
	my $qiter	= $store->get_quads();
	ok $qiter->does('Attean::API::Iterator');
	is($qiter->item_type, 'Attean::API::Quad');

	my $giter	= $store->get_graphs;
	ok $giter->does('Attean::API::Iterator');
	is($giter->item_type, 'Attean::API::Term');
	$self->cleanup_store($store);
};

test 'quadstore get_quads empty' => sub {
	my $self	= shift;
	my $store	= $self->create_store(quads => []);
	{
		my $iter	= $store->get_quads();
		my @elements	= $iter->elements;
		is(scalar(@elements), 0);
	}
	{
		my $iter	= $store->get_quads(iri('s'), iri('p'));
		my @elements	= $iter->elements;
		is(scalar(@elements), 0);
	}
	$self->cleanup_store($store);
};

test 'quadstore get_quads with quads' => sub {
	my $self	= shift;
	my $q1		= quad(iri('s'), iri('p'), iri('o'), iri('g'));
	my $q2		= quad(iri('x'), iri('y'), iri('z'), iri('g'));
	my $store	= $self->create_store(quads => [$q1, $q2]);
	{
		my $iter	= $store->get_quads();
		my @elements	= $iter->elements;
		is(scalar(@elements), 2, '2 quads');
	}
	{
		my $iter	= $store->get_quads(iri('s'));
		my @elements	= $iter->elements;
		is(scalar(@elements), 1, '1 quad with <s> as subject');
	}
	{
		my $iter	= $store->get_quads(variable('s'), undef, undef, iri('g'));
		my @elements	= $iter->elements;
		is(scalar(@elements), 2, '2 quads with <g> as graph');
	}
	{
		my $iter	= $store->get_quads(iri('abc'));
		my @elements	= $iter->elements;
		is(scalar(@elements), 0, '0 quads with <abc> as subject');
	}
	$self->cleanup_store($store);
};

test 'count_quads' => sub {
	my $self	= shift;
	my $q1		= quad(iri('s'), iri('p'), iri('o'), iri('g'));
	my $q2		= quad(iri('x'), iri('y'), iri('z'), iri('g'));
	my $store	= $self->create_store(quads => [$q1, $q2]);
	is($store->count_quads(), 2, '2 quads');
	is($store->count_quads(iri('s')), 1, '1 quad with <s> as subject');
	is($store->count_quads(variable('s'), undef, undef, iri('g')), 2, '2 quads with <g> as graph');
	is($store->count_quads(iri('abc')), 0, '0 quads with <abc> as subject');
	cmp_ok($store->count_quads_estimate(iri('abc')), '>=', 0, 'count_quads_estimate');
	$self->cleanup_store($store);
};

# test 'count_quads_estimate' => sub {};

test 'size' => sub {
	my $self	= shift;
	my $q1		= quad(iri('s'), iri('p'), iri('o'), iri('g'));
	my $q2		= quad(iri('x'), iri('y'), iri('z'), iri('g'));
	my $q3		= quad(iri('x'), iri('y'), iri('z'), iri('g2'));
	my $store	= $self->create_store(quads => [$q1, $q2, $q3]);
	is($store->size(), 3);
	$self->cleanup_store($store);
};

test 'get_graphs' => sub {
	my $self	= shift;
	my $q1		= quad(iri('s'), iri('p'), iri('o'), iri('g'));
	my $q2		= quad(iri('x'), iri('y'), iri('z'), iri('g'));
	my $q3		= quad(iri('x'), iri('y'), iri('z'), iri('g2'));
	my $store	= $self->create_store(quads => [$q1, $q2, $q3]);
	my $iter	= $store->get_graphs;
	my @graphs	= sort map { $_->value } $iter->elements;
	is_deeply(\@graphs, ['g', 'g2']);
	$self->cleanup_store($store);
};

1;