U
�Ul_h � @ sr d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl
mZ ddlm
Z
ddlmZ d ZG d
d� dee�ZdS )
z�
Boolean graphs
==============
The ``boolean_graph`` module defines
the ``BooleanGraph`` class,
which represents a Graph whose order is a power of 2.
AUTHORS:
- Paul Leopardi (2017-11-11): initial version
� )�log)�Graph)�matrix)�FiniteField)�Integer)�base2)�Saveable�sagec s. e Zd ZdZ� fdd�Zdefdd�Z� ZS )�BooleanGrapha�
A Graph whose order is a power of 2.
EXAMPLES:
::
sage: from boolean_cayley_graphs.boolean_graph import BooleanGraph
sage: g16 = BooleanGraph(16)
sage: g16.order()
16
TESTS:
::
sage: from boolean_cayley_graphs.boolean_graph import BooleanGraph
sage: g16 = BooleanGraph(16)
sage: print(g16)
Graph on 16 vertices
c s, t t| �j||� t| �� d��� s(t�dS )z�
A Graph whose order is a power of 2.
EXAMPLES:
::
sage: from boolean_cayley_graphs.boolean_graph import BooleanGraph
sage: g16 = BooleanGraph(8)
sage: g16.order()
8
� N)�superr
�__init__r �order�
is_integer�
ValueError)�self�args�kwargs�� __class__� �G/home/user/Boolean-Cayley-graphs/boolean_cayley_graphs/boolean_graph.pyr
<