




"""simple docstring"""




import unittest

from .lib import (
    Matrix,
    Vector,
    axpy,
    square_zero_matrix,
    unit_basis_vector,
    zero_vector,
)






class     __magic_name__							(       unittest.TestCase				):






				'''simple docstring'''





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2, 3] )
							self.assertEqual(x.component(0 )		, 1 )
							self.assertEqual(x.component(2 )		, 3 )
							lowerCamelCase			      =					Vector()





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([0, 0, 0, 0, 0, 1] )
							self.assertEqual(str(_a )		, """(0,0,0,0,0,1)""" )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2, 3, 4] )
							self.assertEqual(len(_a )		, 4 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2] )
							lowerCamelCase			      =					Vector([1, 2, 3, 4, 5] )
							lowerCamelCase			      =					Vector([0, 0, 0, 0, 0, 0, 0, 0, 0, 0] )
							lowerCamelCase			      =					Vector([1, -1, 1, -1, 2, -3, 4, -5] )
							self.assertAlmostEqual(x.euclidean_length()		, 2.236		, 3 )
							self.assertAlmostEqual(y.euclidean_length()		, 7.416		, 3 )
							self.assertEqual(z.euclidean_length()		, 0 )
							self.assertAlmostEqual(w.euclidean_length()		, 7.616		, 3 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2, 3] )
							lowerCamelCase			      =					Vector([1, 1, 1] )
							self.assertEqual((x + y).component(0 )		, 2 )
							self.assertEqual((x + y).component(1 )		, 3 )
							self.assertEqual((x + y).component(2 )		, 4 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2, 3] )
							lowerCamelCase			      =					Vector([1, 1, 1] )
							self.assertEqual((x - y).component(0 )		, 0 )
							self.assertEqual((x - y).component(1 )		, 1 )
							self.assertEqual((x - y).component(2 )		, 2 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2, 3] )
							lowerCamelCase			      =					Vector([2, -1, 4] )  # for test of dot product
							lowerCamelCase			      =					Vector([1, -2, -1] )
							self.assertEqual(str(x * 3.0 )		, """(3.0,6.0,9.0)""" )
							self.assertEqual((a * b)		, 0 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							self.assertEqual(str(zero_vector(10 ) ).count("""0""" )		, 10 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							self.assertEqual(str(unit_basis_vector(3		, 1 ) )		, """(0,1,0)""" )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 2, 3] )
							lowerCamelCase			      =					Vector([1, 0, 1] )
							self.assertEqual(str(axpy(2		, _a		, _a ) )		, """(3,4,7)""" )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 0, 0, 0, 0, 0] )
							lowerCamelCase			      =					x.copy()
							self.assertEqual(str(_a )		, str(_a ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Vector([1, 0, 0] )
							x.change_component(0		, 0 )
							x.change_component(1		, 1 )
							self.assertEqual(str(_a )		, """(0,1,0)""" )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							self.assertEqual("""|1,2,3|\n|2,4,5|\n|6,7,8|\n"""		, str(_a ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							lowerCamelCase			      =					[[-3, -14, -10], [-5, -10, -5], [-2, -1, 0]]
							for x in range(a.height() ):
										for y in range(a.width() ):
													self.assertEqual(minors[x][y]		, a.minor(_a		, _a ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							lowerCamelCase			      =					[[-3, 14, -10], [5, -10, 5], [-2, 1, 0]]
							for x in range(a.height() ):
										for y in range(a.width() ):
													self.assertEqual(cofactors[x][y]		, a.cofactor(_a		, _a ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							self.assertEqual(-5		, a.determinant() )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]		, 3		, 3 )
							lowerCamelCase			      =					Vector([1, 2, 3] )
							self.assertEqual("""(14,32,50)"""		, str(a * x ) )
							self.assertEqual("""|2,4,6|\n|8,10,12|\n|14,16,18|\n"""		, str(a * 2 ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							a.change_component(0		, 2		, 5 )
							self.assertEqual("""|1,2,5|\n|2,4,5|\n|6,7,8|\n"""		, str(_a ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							self.assertEqual(7		, a.component(2		, 1 )		, 0.01 )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							lowerCamelCase			      =					Matrix([[1, 2, 7], [2, 4, 5], [6, 7, 10]]		, 3		, 3 )
							self.assertEqual("""|2,4,10|\n|4,8,10|\n|12,14,18|\n"""		, str(a + b ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							lowerCamelCase			      =					Matrix([[1, 2, 3], [2, 4, 5], [6, 7, 8]]		, 3		, 3 )
							lowerCamelCase			      =					Matrix([[1, 2, 7], [2, 4, 5], [6, 7, 10]]		, 3		, 3 )
							self.assertEqual("""|0,0,-4|\n|0,0,0|\n|0,0,-2|\n"""		, str(a - b ) )





				def    _lowerCAmelCase				(       self ):





							"""simple docstring"""
							self.assertEqual(
							    """|0,0,0,0,0|\n|0,0,0,0,0|\n|0,0,0,0,0|\n|0,0,0,0,0|\n|0,0,0,0,0|\n"""		, str(square_zero_matrix(5 ) )		, )


if __name__ == "__main__":
					unittest.main()









"""simple docstring"""




def     a__ (				snake_case__				)						->					bool:
			lowerCamelCase			      =					(1 + 24 * n) ** 0.5
			return ((1 + root) / 6) % 1 == 0



def     a__ (				snake_case__ = 50_00				)						->					int:
			lowerCamelCase			      =					[(i * (3 * i - 1)) // 2 for i in range(1       , snake_case__				)]
			for i, pentagonal_i in enumerate(snake_case__				):
						for j in range(snake_case__       , len(snake_case__				)				):
									lowerCamelCase			      =					pentagonal_nums[j]
									lowerCamelCase			      =					pentagonal_i + pentagonal_j
									lowerCamelCase			      =					pentagonal_j - pentagonal_i
									if is_pentagonal(snake_case__				) and is_pentagonal(snake_case__				):
												return b

			return -1


if __name__ == "__main__":
					print(F"""{solution() = }""")



