| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2009년9월24일 0:49 주제: hw2 테스트셋입니다 |
|
|
문제가 묘하게 다단계라서 테스트셋 만들기가 쉽지 않네요.
내부 구현이 드러나지 않는 테스트셋.
미로검증의 경우는 내부 구현 공개 없이 테스트는 아예 불가능한 것 같군요. 어둠의 경로(...)를 이용하시거나 가능하면 직접 구현해보세요. 자료구조에서 graph 배우셨을테니 잘 응용하면 그리 어렵진 않을겁니다.
트리 테스트 셋입니다. 트리 잘못짜면 다음 세문제 돌리다 에러났을때 트리가 틀린건지 다음문제가 틀린건지 모르는 사태가 발생합니다.
(define mytree (node (list (leaf (list 'node 'leaf ())) (node (list (leaf 'node) (leaf (list 1 2 3)) (leaf ()))) (node (list (leaf ()) (leaf (list 'leaf ())) (leaf (list ())))))))
> (is-empty-tree? mytree)
#f
> (is-leaf? mytree)
#f
>(is-leaf? (nth-child mytree 0))
#t
> (leaf-val (nth-child mytree 0))
(node leaf ())
> (is-leaf? (nth-child mytree 1))
#f
> (is-leaf? (nth-child (nth-child mytree 1) 1))
#t
> (leaf-val (nth-child (nth-child mytree 1) 1))
(1 2 3)
> (leaf-val (nth-child (nth-child mytree 1) 0))
node
> (leaf-val (nth-child (nth-child mytree 1) 2))
()
> (is-empty-tree? (nth-child (nth-child mytree 1) 2))
#f
> (leaf-val (nth-child (nth-child mytree 2) 0))
()
> (leaf-val (nth-child (nth-child mytree 2) 1))
(leaf ())
> (leaf-val (nth-child (nth-child mytree 2) 2))
(())
> (is-empty-tree? (leaf ()))
#f
> (is-empty-tree? (node ()))
#t
> (is-empty-tree? (node (list (leaf ()) (node ()))))
#f
> (is-empty-tree? (nth-child (node (list (leaf ()) (node ()))) 1))
#t
모빌 테스트셋입니다. 역시 모빌이 '제대로 만들어지지' 않는다면 balanced나 weight도 제대로 작동 안할테니 만드는 함수는 따로 테스트 안합니다. (덧붙여, 만드는 함수만 수행시키면 실행 결과가 구현에 종속적이라 올릴수가 없습니다)
> (weight (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 2 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 6 (model 2)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
10
> (is-balanced? (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 2 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 6 (model 2)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
#t
> (is-balanced? (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 3 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 6 (model 2)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
#f
> (is-balanced? (make-mobile (make-branch 12 (make-mobile (make-branch 3 (make-mobile (make-branch 2 (model 2)) (make-branch 2 (make-mobile (make-branch 3 (model 1)) (make-branch 3 (model 1)))))) (make-branch 4 (model 3)))) (make-branch 18 (make-mobile (make-branch 3 (model 1)) (make-branch 1 (model 3))))))
#f
마지막으로 논리회로 테스트 셋입니다.
두가지 4-input boolean circuit으로 truth table을 찍게 해버렸으니
이게 제대로 돌아가면 거의 맞았다고 보셔도 될 듯 합니다. 나머지 함수들은 아마도.. output 내부 구현에서 사용하고 있을테니 따로 테스트 안합니다.
> (let ((logic (lambda (a b c d) (output (cor (cor (cand (cand (cnot a) b) (cnot c)) (cand (cand (cnot a) (cnot c)) d)) (cand (cand (cnot a) (cnot b)) (cand c (cnot d))))))))
(list
(logic zero zero zero zero)
(logic zero zero zero one)
(logic zero zero one zero)
(logic zero zero one one)
(logic zero one zero zero)
(logic zero one zero one)
(logic zero one one zero)
(logic zero one one one)
(logic one zero zero zero)
(logic one zero zero one)
(logic one zero one zero)
(logic one zero one one)
(logic one one zero zero)
(logic one one zero one)
(logic one one one zero)
(logic one one one one)))
(0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0)
> (let ((logic (lambda (a b c d) (output (cor (cor (cand b (cnot c)) (cand (cnot a) b)) (cand (cand a (cnot b)) (cand c d)))))))
(list
(logic zero zero zero zero)
(logic zero zero zero one)
(logic zero zero one zero)
(logic zero zero one one)
(logic zero one zero zero)
(logic zero one zero one)
(logic zero one one zero)
(logic zero one one one)
(logic one zero zero zero)
(logic one zero zero one)
(logic one zero one zero)
(logic one zero one one)
(logic one one zero zero)
(logic one one zero one)
(logic one one one zero)
(logic one one one one)))
(0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0) |
|
| 위로 |
|
 |
양진환
가입: 2009년 9월 26일 올린 글: 2
|
올려짐: 2009년9월27일 16:19 주제: 모빌 테스트셋1에서요.. |
|
|
| 결과값이 10이나와야 되는 것이 맞나요? |
|
| 위로 |
|
 |
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2009년9월27일 18:38 주제: re |
|
|
weight 말씀하시는거죠? 10이 맞습니다.
model 로만 '무게'를 생성할 수 있다는 것을 생각하면
보기엔 복잡해보이지만 그냥 눈으로 보면서도
model 뒤에 붙어있는 숫자들만 더해보면 10이 나옵니다. |
|
| 위로 |
|
 |
조도희
가입: 2009년 9월 11일 올린 글: 10
|
올려짐: 2009년9월28일 22:37 주제: 윤용호씨 감사염 |
|
|
윤용호씨 정말 감사드립니다.
추석 때 송편 많이 드세요. _________________ 석봉아 글씨가 개발새발이구나 |
|
| 위로 |
|
 |
|