test/MCAncestryTest.st
author HG Automerge
Thu, 24 Nov 2016 21:56:31 +0000
branchjv
changeset 1015 7b6393ea3d52
parent 809 611029a80428
child 1121 c5661215109c
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello/test' }"
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTestCase subclass:#MCAncestryTest
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
809
611029a80428 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
     7
	category:'SCM-Monticello-Tests'
4
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCAncestryTest methodsFor:'asserting'!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
assertCommonAncestorOf: leftName and: rightName in: options in: tree
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	| left right ancestor |
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	left _ self versionForName: leftName in: tree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	right _ self versionForName: rightName in: tree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	ancestor _ left commonAncestorWith: right.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	self assert: (options includes: ancestor name)
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
assertCommonAncestorOf: leftName and: rightName is: ancestorName in: tree
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	self assertCommonAncestorOf: leftName and: rightName in: (Array with: ancestorName) in: tree
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
assertNamesOf: versionInfoCollection are: nameArray
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	| names |
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	names _ versionInfoCollection collect: [:ea | ea name].
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	self assert: names asArray = nameArray
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
assertPathTo: aSymbol is: anArray
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	self
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
		assertNamesOf: (self tree allAncestorsOnPathTo: (self treeFrom: {aSymbol}))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
		are: anArray
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
! !
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!MCAncestryTest methodsFor:'building'!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
tree
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ self treeFrom:
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
		#(c1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
			((e2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
				((e1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
					((a1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
						(('00')))))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
			(a2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
				((a1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
					(('00')))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
			(b3
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
				((b2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
					((b1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
						((b0
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
							(('00')))))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
				(a1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
					(('00')))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
			(d1)))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
twoPersonTree
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	^ self treeFrom:
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		#(c1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
			((a4
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
				((a1)
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
				(b3
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
					((b2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
						((a1)))))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
			(b5
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
				((b2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
					((a1)))))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
versionForName: name in: tree
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	(tree name = name) ifTrue: [^ tree].
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	tree ancestors do: [:ea | (self versionForName: name in: ea) ifNotNilDo: [:v | ^ v]].
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
	
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
	^ nil
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
! !
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!MCAncestryTest methodsFor:'tests'!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
testCommonAncestors
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	self assertCommonAncestorOf: #a2 and: #e2 is: #a1 in: self tree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
	self assertCommonAncestorOf: #e2 and: #b3 is: #a1 in: self tree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	self assertCommonAncestorOf: #b2 and: #e2 is: #'00' in: self tree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
	
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	self assertCommonAncestorOf: #a4 and: #b5 in: #(b2 a1) in: self twoPersonTree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	self assertCommonAncestorOf: #b5 and: #b3 is: #b2 in: self twoPersonTree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
	self assertCommonAncestorOf: #b2 and: #a4 is: #b2 in: self twoPersonTree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	self assertCommonAncestorOf: #b2 and: #b2 is: #b2 in: self twoPersonTree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	self assertCommonAncestorOf: #b2 and: #a1 is: #a1 in: self twoPersonTree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	self assertCommonAncestorOf: #a1 and: #b2 is: #a1 in: self twoPersonTree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
testDescendants
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	| c1 a1 b3 q1 q2 c2 |
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	c1 _ self tree.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	a1 _ self treeFrom: #(a1 (('00'))).
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
	b3 _ self treeFrom: #(b3
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
				((b2
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
					((b1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
						((b0
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
							(('00')))))))
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
				(a1
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
					(('00'))))).
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	q1 _ MCWorkingAncestry new addAncestor: a1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	q2 _ MCWorkingAncestry new addAncestor: q1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
	self assert: (q2 commonAncestorWith: b3) = a1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
	self assert: (b3 commonAncestorWith: q2) = a1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
	self assert: (q2 commonAncestorWith: c1) = a1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	self assert: (c1 commonAncestorWith: q2) = a1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
	q1 addStepChild: c1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	self assert: (q2 commonAncestorWith: c1) = q1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
	self assert: (c1 commonAncestorWith: q2) = q1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
	c2 _ MCWorkingAncestry new addAncestor: c1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
	self assert: (q2 commonAncestorWith: c2) = q1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	self assert: (c2 commonAncestorWith: q2) = q1.
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
testLinearPath
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
	self assertPathTo: #b1 is: #(b3 b2)
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
testPathToMissingAncestor
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
	self assert: (self tree allAncestorsOnPathTo: MCVersionInfo new) isEmpty
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
! !
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
!MCAncestryTest class methodsFor:'documentation'!
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
version
809
611029a80428 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   134
    ^ '$Header: /cvs/stx/stx/goodies/monticello/test/MCAncestryTest.st,v 1.2 2013-05-29 00:00:46 vrany Exp $'
4
3638e3e1e224 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
! !
809
611029a80428 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
   136