https://gmlwjd9405.github.io/2018/05/08/algorithm-merge-sort.html
삽입 정렬, 선택 정렬, 버블 정렬
삽입 정렬
원소를 그 앞에 있는 정렬된 원소듥과 비교 후 해당 값을 삽입할 위치를 찾아 삽입하며 정렬
선택 정렬
워소를 그 이후의 값들 중 최솟값과 비교하여 가장 작은 값을 앞에 놓는 과정을 반복해서 정렬
버블 정렬
인접한 두 원소를 비교하여 정렬
퀵 정렬, 합병 정렬, 힙 정렬, 기수 정렬
큌 정렬
피벗을 기준으로 비균등한 두개의 리스트로 나눠서 정렬 후 전체를 정렬
피벗을 기준으로 왼쪽은 작은 값들 오른쪽은 큰 값들
합병 정렬
균등한 두개의 리스트로 나눠서 정렬 후 전체를 정렬
➡️ 퀵, 합병정렬은 분할된 부분 리스트들에 대해서는 순환호출을 이용해서 정렬을 반복한다
힙 정렬
최소힙이나 최대힙을 사용해서 정렬하는 방법
https://gmlwjd9405.github.io/2018/05/08/algorithm-merge-sort.html
from rest_framework.test import APITestCase
from django.urls import reverse
class UserTest(APITestCase):
def test_signup(self):
url=reverse('signup_view')
user_data={
'username':'test',
'email':'test@test.com',
'password':'1234',
'password_check':'1234'
}
response=self.client.post(url,user_data)
# print(response) # <Response status_code=201, "application/json">
# print(response.data) # {'message': '회원가입이 완료되었습니다!'}
# self.assertEqual(response.data['message'],"회원가입이 완료되었습니다!")
# response.data.message로 하면 AttributeError: 'dict' object has no attribute 'message'
self.assertEqual(response.status_code,201)
test_signup에서 만든 유저는 사라진다
각 테스트케이스는 독립적이므로 하나의 함수에서 사용된 데이터베이스는 초기화되기 때문
# Destroying test database for alias 'default'...
# 모든 테스트는 독립적이다 아니면 회원가입이랑 로그인이랑 같이 작성하든가
# 아니면 setup을 사용해서 데이터를 먼저 세팅해준다
class UserLoginTest(APITestCase):
def setUp(self):
# self.user=Users.objects.create_user(
# email='test@test.com',username='test',password='1234')
self.data = {
'username':'test',
'email':'test@test.com',
'password':'1234',
'password_check':'1234'
}
self.user=Users.objects.create_user('test@test.com','1234') #models.py create_user사용(인자로 받는 값 갯수에 맞게 써줘야함)
def test_login(self):
url=reverse('login_view')
response=self.client.post(url,self.data)
# {'detail': ErrorDetail(string='No active account found with the given credentials', code='no_active_account')}
print(response.data) # {'refresh':'','access':''}
self.assertEqual(response.status_code,200)
models.py에 create_user의 인자에서 username=None이면 넣어줘도 상관없고 (default가 있으니까)
함수 인자로 username이 없으면 여기서 넣어줬을 때 unexpected keyword 오류발생