@@ -12,7 +12,7 @@ class testSO: XCTestCase {
1212 func otioFilePath( _ filename: String ) -> String ? {
1313 return Bundle . module. path ( forResource: filename, ofType: " " )
1414 }
15-
15+
1616 func uniqueTmpFileName( _ basename: String ) -> URL {
1717 let r = UUID ( ) . uuidString
1818 let tmpFile = FileManager . default. temporaryDirectory. appendingPathComponent ( " otio-tmp-xctest- \( r) .otio " )
@@ -23,7 +23,7 @@ class testSO: XCTestCase {
2323 let so0 = SerializableObject ( )
2424 XCTAssert ( so0. schemaName == " SerializableObject " )
2525 XCTAssert ( so0. schemaVersion == 1 )
26-
26+
2727 let path = otioFilePath ( " data/so1.otio " )
2828 XCTAssert ( path != nil )
2929 if ( path == nil ) {
@@ -32,22 +32,22 @@ class testSO: XCTestCase {
3232
3333 let so1 = try ! SerializableObject . fromJSON ( filename: path!)
3434 XCTAssert ( so0. isEquivalent ( to: so1) )
35-
35+
3636 let clip1 = Clip ( )
3737 clip1. name = " my-clip-1 "
38-
38+
3939 let clip1String = try ! clip1. toJSON ( )
4040 let clip2 = try ! SerializableObject . fromJSON ( string: clip1String)
41-
41+
4242 XCTAssertNotNil ( clip2 as? Clip )
4343 XCTAssertNil ( clip2 as? Gap )
4444 XCTAssert ( clip1. isEquivalent ( to: clip2) )
45-
45+
4646 let tmpFile = uniqueTmpFileName ( " t1 " )
4747 try ! clip2. toJSON ( url: tmpFile)
4848 XCTAssert ( clip2. isEquivalent ( to: try ! SerializableObject . fromJSON ( url: tmpFile) ) )
4949 try ! FileManager . default. removeItem ( at: tmpFile)
50-
50+
5151 XCTAssert ( !so0. isUnknownSchema)
5252 XCTAssert ( !clip2. isUnknownSchema)
5353 }
@@ -64,22 +64,22 @@ class testSO: XCTestCase {
6464 let uso = so as! UnknownSchema
6565 XCTAssert ( uso. originalSchemaVersion == 3 && uso. originalSchemaName == " BogusName " )
6666 }
67-
67+
6868 func test_SerializableObjectWithMetadata( ) {
6969 let sowm = SerializableObjectWithMetadata ( )
7070 let clip = Clip ( )
7171 sowm. metadata [ " anInt " ] = 1
7272 sowm. metadata [ " aString " ] = " foo "
7373 sowm. metadata [ " aVector " ] = Metadata . Vector ( arrayLiteral: 3 , " abc " , clip)
7474 sowm. name = " sowm "
75-
75+
7676 let sowm2 = try ! sowm. clone ( ) as! SerializableObjectWithMetadata
7777 XCTAssert ( sowm2. isEquivalent ( to: sowm) )
78-
78+
7979 let sowm3 = SerializableObjectWithMetadata ( name: sowm. name, metadata: sowm. metadata)
8080 let sowm4 = SerializableObjectWithMetadata ( name: sowm3. name, metadata: sowm3. metadata. map { $0 } )
8181 XCTAssert ( sowm3. isEquivalent ( to: sowm4) )
82-
82+
8383 print ( try ! sowm. toJSON ( ) )
8484 }
8585
@@ -88,8 +88,8 @@ class testSO: XCTestCase {
8888 c. name = " composable "
8989 c. metadata [ " abc " ] = 8
9090 // c.metadata["blah"] = c // Cycles in the graph are currently disallowed
91-
92-
91+
92+
9393 XCTAssert ( c. parent == nil )
9494
9595 let c2 = try ! c. clone ( ) as! Composable
@@ -98,30 +98,30 @@ class testSO: XCTestCase {
9898 XCTAssert ( c2. visible)
9999 XCTAssert ( !c2. overlapping)
100100 XCTAssertNil ( c2. parent)
101-
101+
102102 print ( try ! c. toJSON ( ) )
103103 }
104-
104+
105105 func test_Marker( ) {
106106 let tr = TimeRange ( startTime: RationalTime ( value: 1 , rate: 2 ) ,
107107 duration: RationalTime ( value: 4 , rate: 30 ) )
108108 let m = Marker ( name: " marker " , markedRange: tr, color: Marker . Color. pink. rawValue)
109109 m. metadata [ " abc " ] = 9
110-
110+
111111 let m2 = try ! m. clone ( ) as! Marker
112112 XCTAssert ( m2. name == " marker " )
113113 XCTAssert ( m2. metadata [ " abc " ] == 9 )
114114 XCTAssert ( m2. markedRange == tr)
115115 XCTAssert ( m2. color == Marker . Color. pink. rawValue)
116116 XCTAssert ( Marker ( ) . color == Marker . Color. green. rawValue)
117117 }
118-
118+
119119 func test_SerializableCollection( ) {
120120 let m1 = Marker ( name: " marker1 " )
121121 let c1 = Clip ( name: " clip1 " )
122122 let sc = SerializableCollection ( name: " sc " , children: [ m1, c1] , metadata: [ ] )
123123 sc. metadata [ " abc " ] = 10
124-
124+
125125 let sc2 = try ! sc. clone ( ) as! SerializableCollection
126126 XCTAssert ( sc2. name == " sc " )
127127 XCTAssert ( sc2. metadata [ " abc " ] == 10 )
@@ -137,16 +137,16 @@ class testSO: XCTestCase {
137137 let child1 = Composable ( name: " Composable1 " )
138138 let child2 = Composable ( name: " Composable2 " )
139139 let child3 = Composable ( name: " Composable3 " )
140-
140+
141141 XCTAssert ( child1. parent == nil )
142142 assertErrorType ( . illegalIndex, expr: { try c1. remove ( index: 0 ) } )
143143
144144 XCTAssert ( c1. children. map { $0 } == [ ] )
145145 try ! c1. append ( child: child1) ;
146146 XCTAssert ( c1. children. map { $0 } == [ child1] )
147-
147+
148148 XCTAssert ( child1. parent === c1)
149-
149+
150150 assertErrorType ( . childAlreadyParented, expr: { try c1. append ( child: child1) } )
151151 try ! c1. append ( child: child2)
152152 XCTAssert ( c1. children. map { $0 } == [ child1, child2] )
@@ -184,13 +184,13 @@ class testSO: XCTestCase {
184184 func test_item( ) {
185185 let item = Item ( name: " item1 " )
186186 item. metadata [ " abc " ] = 11
187-
187+
188188 let item2 = Item ( name: item. name, metadata: item. metadata)
189189 let item3 = Item ( )
190-
190+
191191 let item4 = Item ( name: " item4 " )
192192 item4. metadata [ " xyz " ] = 12
193-
193+
194194 let item5 = item2;
195195
196196 XCTAssert ( item. isEquivalent ( to: item2) )
@@ -206,12 +206,21 @@ class testSO: XCTestCase {
206206 XCTAssert ( item. visible)
207207 XCTAssert ( !item. overlapping)
208208
209+ XCTAssertTrue ( item. enabled)
210+ item. enabled = false
211+ XCTAssertFalse ( item. enabled)
212+ item. enabled = true
213+ XCTAssertTrue ( item. enabled)
214+
215+ let disabledItem = Item ( name: " disabled " , enabled: false )
216+ XCTAssertFalse ( disabledItem. enabled)
217+
209218 assertErrorType ( . notImplemented) { try _ = item. duration ( ) }
210219 assertErrorType ( . notImplemented) { try _ = item. availableRange ( ) }
211220 assertErrorType ( . notImplemented) { try _ = item. trimmedRange ( ) }
212221 assertErrorType ( . notImplemented) { try _ = item. visibleRange ( ) }
213222 assertErrorType ( . notAChild) { try _ = item. rangeInParent ( ) }
214-
223+
215224 let tr = TimeRange ( startTime: RationalTime ( value: 10 , rate: 12 ) , duration: RationalTime ( value: 14 , rate: 24 ) )
216225 XCTAssert ( try item. transformed ( time: tr. startTime, toItem: item) == tr. startTime)
217226 XCTAssert ( try item. transformed ( timeRange: tr, toItem: item) == tr)
@@ -233,7 +242,7 @@ class testSO: XCTestCase {
233242 let mr1 = MediaReference ( )
234243 let clip = Clip ( name: " clipA " , mediaReference: mr1)
235244 let c2 = try ! clip. clone ( )
236-
245+
237246 XCTAssert ( clip. isEquivalent ( to: c2) )
238247 XCTAssert ( clip. mediaReference === mr1)
239248 }
@@ -242,28 +251,28 @@ class testSO: XCTestCase {
242251 let s1 = Stack ( name: " my-stack " )
243252 XCTAssert ( s1. isEquivalent ( to: try ! s1. clone ( ) ) )
244253 print ( try ! s1. rangeOfAllChildren ( ) )
245-
254+
246255 let result = try ! Algorithms . flatten ( stack: s1)
247256 let result2 = try ! Algorithms . flatten ( tracks: [ result] )
248257 print ( result)
249258 print ( result2)
250259 }
251-
260+
252261 func test_timeline( ) {
253262 let t1 = Timeline ( name: " t1 " , globalStartTime: RationalTime ( value: 3 , rate: 12 ) )
254263 let t2 = Timeline ( name: " t2 " )
255264 XCTAssert ( t2. globalStartTime == nil )
256-
265+
257266 t2. globalStartTime = t1. globalStartTime
258267 XCTAssert ( t2. globalStartTime == t1. globalStartTime)
259268 t2. globalStartTime = nil
260269 XCTAssert ( t2. globalStartTime == nil )
261-
270+
262271 XCTAssert ( t1. isEquivalent ( to: try ! t1. clone ( ) ) )
263272 let t3 = try ! t1. clone ( ) as! Timeline
264273 XCTAssert ( t3. isEquivalent ( to: t1) )
265274 }
266-
275+
267276 func testD0( ) {
268277 var v = Metadata . Vector ( )
269278 for i in 0 ..< 10 {
@@ -277,7 +286,7 @@ class testSO: XCTestCase {
277286// print("[\(i)]: \(value)")
278287// }
279288 }
280-
289+
281290/*
282291 func testD2() {
283292 let xx = SerializableObjectWithMetadata()
@@ -287,9 +296,9 @@ class testSO: XCTestCase {
287296 md["a3"] = 3
288297 md["a4"] = 4
289298 md["a5"] = 5
290-
299+
291300 print(xx.metadata)
292-
301+
293302 for (key, value) in xx.metadata {
294303 if let v: Int = value as? Int {
295304 if v >= 3 {
@@ -302,37 +311,37 @@ class testSO: XCTestCase {
302311 print("------------")
303312
304313 _ = Metadata.Dictionary(arrayLiteral: ("integer", 123), ("Double", 3.14159), ("Bool", true))
305-
314+
306315 xx.metadata["keys"] = Metadata.Vector(contents: md.map { $0.0 })
307316 xx.metadata["this_is_cool"] = Metadata.Vector(arrayLiteral: 1, 3, "alpha")
308317 let mv = Metadata.Vector(arrayLiteral: 1, 3, "alpha", md)
309318 xx.metadata["this_is_really_cool"] = Metadata.Vector(mv.compactMap { ($0 as? Int) == nil ? $0 : nil })
310-
319+
311320 var c = xx.metadata["this_is_really_cool"] as! Metadata.Vector
312321 c.append(45678)
313-
322+
314323 let d = (xx.metadata["this_is_really_cool"] as? Metadata.Vector)?.description
315324 // c1.append(12345)
316325
317326// xx.metadata["legal?"] = (3, 4)
318-
327+
319328 print(try! xx.toJSON())
320329 }
321330*/
322-
331+
323332 func testD1( ) {
324333 let xx = Clip ( )
325-
334+
326335 if let a: Int64 = xx. metadata [ " abc " ] {
327336 print ( " Yes, abc is: " , a)
328337 }
329338 xx. metadata [ " abc " ] = 3.2498
330339 xx. metadata [ " nested_copy " ] = xx. metadata [ " nested " ]
331-
340+
332341 if let b: Double = xx. metadata [ " abc " ] {
333342 print ( " [2] Yes, abc is now: " , b)
334343 }
335-
344+
336345 if let r1: RationalTime = ( xx. metadata [ " nested " ] as? Metadata . Dictionary) ? [ " r1 " ] {
337346 print ( " Got r1: " , r1)
338347 }
@@ -342,8 +351,7 @@ class testSO: XCTestCase {
342351 catch {
343352 print ( " OOPS: " , error)
344353 }
345-
354+
346355 print ( xx. metadata)
347356 }
348357}
349-
0 commit comments