<s> from UnionFind import UnionFind <EOL> import copy <EOL> import unittest <EOL> class TestUnionFind ( unittest . TestCase ) : <EOL> uf = UnionFind ( ) <EOL> uf . get_or_insert ( <NUM_LIT:1> ) <EOL> uf . get_or_insert ( <NUM_LIT:10> ) <EOL> uf . get_or_insert ( <NUM_LIT:2> ) <EOL> uf . get_or_insert ( <NUM_LIT:5> ) <EOL> def test_insert_or_get ( self ) : <EOL> uf = copy . deepcopy ( self . uf ) <EOL> self . assertIn ( <NUM_LIT:1> , uf ) <EOL> self . assertIn ( <NUM_LIT:10> , uf ) <EOL> self . assertIn ( <NUM_LIT:2> , uf ) <EOL> self . assertIn ( <NUM_LIT:5> , uf ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:1> ) , <NUM_LIT:1> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:5> ) , <NUM_LIT:5> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:10> ) , <NUM_LIT:10> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:2> ) , <NUM_LIT:2> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:30> ) , <NUM_LIT:30> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT> ) , <NUM_LIT> ) <EOL> def test_get ( self ) : <EOL> uf = self . uf <EOL> self . assertEqual ( uf [ <NUM_LIT:1> ] , <NUM_LIT:1> ) <EOL> self . assertEqual ( uf [ <NUM_LIT:10> ] , <NUM_LIT:10> ) <EOL> def test_get_error ( self ) : <EOL> with self . assertRaises ( Exception ) : <EOL> _ = self . uf [ <NUM_LIT> ] <EOL> with self . assertRaises ( Exception ) : <EOL> _ = self . uf [ <NUM_LIT:30> ] <EOL> def test_union ( self ) : <EOL> uf = copy . deepcopy ( self . uf ) <EOL> uf . union ( <NUM_LIT:1> , <NUM_LIT:10> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:1> ) , uf . get_or_insert ( <NUM_LIT:10> ) ) <EOL> uf . union ( <NUM_LIT:2> , <NUM_LIT:5> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:2> ) , uf . get_or_insert ( <NUM_LIT:5> ) ) <EOL> uf . union ( <NUM_LIT:2> , <NUM_LIT:1> ) <EOL> self . assertEqual ( uf . get_or_insert ( <NUM_LIT:10> ) , uf . get_or_insert ( <NUM_LIT:5> ) ) </s>
