def small_group_data(gapid): parts = gapid.split('.') n = int(parts[0]) k = int(parts[1]) group = db.gps_small.lookup(str(gapid)) inf = "Group $%s$" % str(group['pretty']) inf += " — " inf += ('' if group['cyclic'] else 'not')+' cyclic, ' inf += ('' if group['abelian'] else 'non-')+'abelian, ' inf += ('' if group['solvable'] else 'not')+' solvable' inf += '<p>Order: '+str(n) inf += '<br>GAP small group number: '+str(k) inf += '<br>Exponent: '+str(group['exponent']) inf += '<br>Perfect: '+str(group['perfect']) inf += '<br>Simple: '+str(group['simple']) inf += '<br>Normal subgroups: '+display_multiset(group['normal_subgroups'],small_group_label_display_knowl) inf += '<br>Maximal subgroups: '+display_multiset(group['maximal_subgroups'], small_group_label_display_knowl) inf += '<br>Center: '+small_group_label_display_knowl(str(group['center'])) inf += '<br>Derived subgroup: '+small_group_label_display_knowl(str(group['derived_group'])) inf += '<br>Abelianization: '+small_group_label_display_knowl(str(group['abelian_quotient'])) inf += '<br>Conjugacy class information: <table style="text-align: center;"><tr><th>Element Order<th>Size<th>Multiplicity' for row in group['clases']: inf += '<tr><td>%d<td>%d<td>%d'%(row[0],row[1],row[2]) inf += '</table></p>' return inf
def test_display_multiset(self): r""" Checking utility: display_multiset """ self.assertEqual(display_multiset([["a", 3], [12, 2]]), 'a x3, 12 x2') self.assertEqual(display_multiset([[1, 4], [0, 0], ["cat", 2]]), '1 x4, 0, cat x2')
def format_subfields(subdata, p): if subdata == []: return '' return display_multiset(subdata, format_lfield, p)
def subfields_show(self): subs = self.subfields() if subs == []: return [] return display_multiset(subs, formatfield)