@@ -115,13 +115,6 @@ TEST(GraphTest_size_t, CreateGraphWithDuplicateEdges) {
115
115
// для скорости работы по умолчанию дубликаты допускаются
116
116
Graph<size_t , long > g = Graph<size_t , long >::GraphNonWeighted (edges);
117
117
118
- ASSERT_EQ (g.VertsAmount (), 3 );
119
- ASSERT_EQ (g.EdgesAmount (), 5 );
120
- ASSERT_FALSE (g.IsWeighted ());
121
- ASSERT_TRUE (g.IsDirected ());
122
-
123
- g.RemoveDuplicates ();
124
-
125
118
ASSERT_EQ (g.VertsAmount (), 3 );
126
119
ASSERT_EQ (g.EdgesAmount (), 3 );
127
120
ASSERT_FALSE (g.IsWeighted ());
@@ -362,15 +355,15 @@ TEST(GraphTest_size_t, AddVert) {
362
355
TEST (GraphTest_size_t, AddEdgeUnweighted) {
363
356
Graph<size_t , long > g;
364
357
365
- g.AddEdge (0 , 1 );
358
+ g.AddEdge ({ 0 , 1 } );
366
359
EXPECT_EQ (g.EdgesAmount (), 1 );
367
360
EXPECT_TRUE (g.ContainsEdge ({0 , 1 }));
368
361
369
- g.AddEdge (0 , 1 );
370
- EXPECT_EQ (g.EdgesAmount (), 2 );
362
+ g.AddEdge ({ 0 , 1 } );
363
+ EXPECT_EQ (g.EdgesAmount (), 1 ); // теперь в графе только уникальные ребра
371
364
EXPECT_TRUE (g.ContainsEdge ({0 , 1 }));
372
365
373
- g.AddEdge (2 , 3 );
366
+ g.AddEdge ({ 2 , 3 } );
374
367
EXPECT_EQ (g.VertsAmount (), 4 );
375
368
EXPECT_TRUE (Contains (g.Verts (), size_t (2 )));
376
369
EXPECT_TRUE (Contains (g.Verts (), size_t (3 )));
@@ -379,34 +372,28 @@ TEST(GraphTest_size_t, AddEdgeUnweighted) {
379
372
TEST (GraphTest_size_t, AddEdgeWeighted) {
380
373
Graph<size_t , long > g;
381
374
382
- g.AddEdge (0 , 1 , 10 );
375
+ g.AddEdge ({ 0 , 1 , 10 } );
383
376
EXPECT_EQ (g.EdgesAmount (), 1 );
384
377
EXPECT_TRUE (g.ContainsEdge ({0 , 1 , 10 }));
385
378
EXPECT_EQ (g.GetEdgeWeight ({0 , 1 }), 10 );
386
379
387
- g.AddEdge (0 , 1 , 15 );
388
-
389
- // если пользователь решает добавить то же ребро,
390
- // но с другим весом - он сам дурак
391
-
392
- // (иначе добавление ребра будет работать за O(E))
393
-
394
- g.RemoveDuplicates ();
380
+ g.AddEdge ({0 , 1 , 15 });
395
381
396
382
EXPECT_EQ (g.EdgesAmount (), 2 );
397
383
EXPECT_TRUE (g.ContainsEdge ({0 , 1 , 10 }));
398
384
EXPECT_EQ (g.GetEdgeWeight ({0 , 1 }), 10 );
399
385
400
- EXPECT_THROW (g.AddEdge (2 , 3 ), std::logic_error);
386
+ // Warning
387
+ EXPECT_NO_THROW (g.AddEdge ({2 , 3 }));
401
388
}
402
389
403
390
TEST (GraphTest_size_t, RemoveVert) {
404
391
Graph<size_t , long > g;
405
392
g.AddVert (1 );
406
393
g.AddVert (2 );
407
394
g.AddVert (3 );
408
- g.AddEdge (1 , 2 , 5 );
409
- g.AddEdge (2 , 3 , 7 );
395
+ g.AddEdge ({ 1 , 2 , 5 } );
396
+ g.AddEdge ({ 2 , 3 , 7 } );
410
397
411
398
ASSERT_NO_THROW (g.RemoveVert (2 ));
412
399
EXPECT_FALSE (Contains (g.Verts (), size_t (2 )));
@@ -421,8 +408,8 @@ TEST(GraphTest_size_t, RemoveEdgeByPair) {
421
408
g.AddVert (1 );
422
409
g.AddVert (2 );
423
410
g.AddVert (3 );
424
- g.AddEdge (1 , 2 , 5 );
425
- g.AddEdge (2 , 3 , 7 );
411
+ g.AddEdge ({ 1 , 2 , 5 } );
412
+ g.AddEdge ({ 2 , 3 , 7 } );
426
413
427
414
ASSERT_NO_THROW (g.RemoveEdge ({1 , 2 }));
428
415
EXPECT_FALSE (g.ContainsEdge ({1 , 2 }));
@@ -436,8 +423,8 @@ TEST(GraphTest_size_t, RemoveEdgeByTuple) {
436
423
g.AddVert (1 );
437
424
g.AddVert (2 );
438
425
g.AddVert (3 );
439
- g.AddEdge (1 , 2 , 5 );
440
- g.AddEdge (2 , 3 , 7 );
426
+ g.AddEdge ({ 1 , 2 , 5 } );
427
+ g.AddEdge ({ 2 , 3 , 7 } );
441
428
442
429
ASSERT_NO_THROW (g.RemoveEdge ({2 , 3 , 7 }));
443
430
EXPECT_FALSE (g.ContainsEdge ({2 , 3 , 7 }));
@@ -471,8 +458,8 @@ TEST(GraphTest_size_t, AddAndRemoveEdges) {
471
458
g.AddVert (2 );
472
459
g.AddVert (3 );
473
460
474
- g.AddEdge (1 , 2 , 5 );
475
- g.AddEdge (2 , 3 , 7 );
461
+ g.AddEdge ({ 1 , 2 , 5 } );
462
+ g.AddEdge ({ 2 , 3 , 7 } );
476
463
EXPECT_EQ (g.EdgesAmount (), 2 );
477
464
EXPECT_TRUE (g.ContainsEdge ({1 , 2 , 5 }));
478
465
EXPECT_TRUE (g.ContainsEdge ({2 , 3 , 7 }));
@@ -506,8 +493,8 @@ TEST(GraphTest_size_t, RemoveEdgeFromDirectedGraph) {
506
493
graph_directed.AddVert (0 );
507
494
graph_directed.AddVert (1 );
508
495
graph_directed.AddVert (2 );
509
- graph_directed.AddEdge (0 , 1 , 1 );
510
- graph_directed.AddEdge (1 , 2 , 2 );
496
+ graph_directed.AddEdge ({ 0 , 1 , 1 } );
497
+ graph_directed.AddEdge ({ 1 , 2 , 2 } );
511
498
512
499
ASSERT_NO_THROW (graph_directed.RemoveEdge ({0 , 1 }));
513
500
ASSERT_FALSE (graph_directed.ContainsEdge ({0 , 1 }));
@@ -519,8 +506,8 @@ TEST(GraphTest_size_t, RemoveEdgeFromUndirectedGraph) {
519
506
graph_undirected.AddVert (0 );
520
507
graph_undirected.AddVert (1 );
521
508
graph_undirected.AddVert (2 );
522
- graph_undirected.AddEdge (0 , 1 , 1 );
523
- graph_undirected.AddEdge (1 , 2 , 2 );
509
+ graph_undirected.AddEdge ({ 0 , 1 , 1 } );
510
+ graph_undirected.AddEdge ({ 1 , 2 , 2 } );
524
511
525
512
graph_undirected.MakeUndirected ();
526
513
@@ -535,17 +522,17 @@ TEST(GraphTest_size_t, RemoveNonExistentEdgeThrowsException) {
535
522
graph_directed.AddVert (0 );
536
523
graph_directed.AddVert (1 );
537
524
graph_directed.AddVert (2 );
538
- graph_directed.AddEdge (0 , 1 , 1 );
539
- graph_directed.AddEdge (1 , 2 , 2 );
525
+ graph_directed.AddEdge ({ 0 , 1 , 1 } );
526
+ graph_directed.AddEdge ({ 1 , 2 , 2 } );
540
527
541
528
ASSERT_THROW (graph_directed.RemoveEdge ({0 , 2 }), std::invalid_argument);
542
529
543
530
Graph<size_t , long > graph_undirected{};
544
531
graph_undirected.AddVert (0 );
545
532
graph_undirected.AddVert (1 );
546
533
graph_undirected.AddVert (2 );
547
- graph_undirected.AddEdge (0 , 1 , 1 );
548
- graph_undirected.AddEdge (1 , 2 , 2 );
534
+ graph_undirected.AddEdge ({ 0 , 1 , 1 } );
535
+ graph_undirected.AddEdge ({ 1 , 2 , 2 } );
549
536
550
537
graph_undirected.MakeUndirected ();
551
538
0 commit comments